Function at 0x4ff835
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xfc
push ebx
mov ebx, dword [esp + 0x108]
mov eax, dword [ebx + 8]
cmp eax, 1
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x44], esi
je 0x4ffc99
cmp eax, 4
je 0x4ffc99
cmp eax, 0xd
je 0x4ffc99
mov cl, byte [esi + 0x10]
xor edi, edi
test cl, cl
jne 0x4ff998
cmp eax, 0x13
jne 0x4ff990
mov eax, dword [esi + 0xc]
cmp eax, edi
je 0x4ff877
add eax, 4
jmp 0x4ff879
xor eax, eax
push eax
call fcn.004fdfa0
mov ebp, eax
add esp, 4
cmp ebp, edi
je case.0x4ff9db.14
cmp dword [ebx + 0x10], 0xd
jne case.0x4ff9db.14
mov byte [esi + 0x10], 1
mov esi, dword [esi + 8]
cmp esi, edi
je 0x4ff8a6
lea eax, [esi + 4]
jmp 0x4ff8a8
xor eax, eax
push eax
call fcn.004fe0f0
mov cl, byte [eax + 0x359]
add esp, 4
test cl, cl
jne 0x4ff8e6
lea ecx, [esp + 0x14]
push ecx
mov ecx, eax
call fcn.004e32a0
mov eax, dword [eax]
cmp eax, edi
je 0x4ff8d2
add eax, 4
jmp 0x4ff8d4
xor eax, eax
push eax
call fcn.004fe820
add esp, 4
lea ecx, [esp + 0x14]
call fcn.004039f0
mov ecx, dword [esp + 0x110]
mov edi, dword [ecx + 8]
push 1
push 0
push 1
push 1
sub esp, 0x10
or eax, 0xffffffff
mov esi, esp
mov dword [esi], eax
or edi, 7
or edx, 0xffffffff
mov dword [ecx + 8], edi
mov dword [esi + 4], edx
or edi, 0xffffffff
or ebx, 0xffffffff
mov dword [esi + 8], edi
mov dword [esi + 0xc], ebx
call fcn.004db4d0
mov ecx, eax
call fcn.00506ef0
or ecx, 0xffffffff
xor eax, eax
mov edi, str.lb_beginpopup
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.lb_beginpopup
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], 0
call fcn.0049d9d0
push 0
push 0
push ebp
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x68]
call fcn.00500e60
lea ecx, [esp + 0x14]
call fcn.004039f0
mov eax, dword [ebp]
lea ecx, [esp + 0x58]
push ecx
mov ecx, ebp
call dword [eax + 0x70]
lea ecx, [esp + 0x6c]
call fcn.004039f0
mov eax, 0xf4240
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret 0xc
test cl, cl
je case.0x4ff9db.14
mov eax, dword [esi + 0xc]
cmp eax, edi
je 0x4ff9a4
add eax, 4
jmp 0x4ff9a6
xor eax, eax
push eax
call fcn.004fdfa0
mov ebp, eax
add esp, 4
cmp ebp, edi
je case.0x4ff9db.14
mov eax, dword [ebx + 8]
cmp eax, 0x13
jne 0x4ffaef
mov ebx, dword [ebx + 0x10]
lea eax, [ebx - 0xd]
cmp eax, 0x1b
ja case.0x4ff9db.14
movzx edx, byte [eax + 0x500e40]
jmp dword [edx*4 + 0x500e2c]
cmp ebx, 0x26
mov edx, str.lb_up
je 0x4ff9f1
mov edx, str.lb_down
cmp edx, edi
mov dword [esp + 0x44], edi
je 0x4ffa12
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x4c]
call fcn.0049d9d0
xor edi, edi
push edi
push edi
push ebp
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x68]
call fcn.00500e60
lea ecx, [esp + 0x44]
call fcn.004039f0
mov dword [esp + 0x44], edi
jmp 0x4ffa80
cmp ebx, 0x25
mov edx, str.lb_left
je 0x4ffa41
mov edx, str.lb_right
cmp edx, edi
mov dword [esp + 0x14], edi
je 0x4ffa62
or ecx, 0xffffffff
xor eax, eax
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.0049d9d0
xor edi, edi
push edi
push edi
push ebp
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x68]
call fcn.00500e60
lea ecx, [esp + 0x14]
call fcn.004039f0
mov dword [esp + 0x14], edi
mov edx, dword [ebp]
lea eax, [esp + 0x58]
push eax
mov ecx, ebp
call dword [edx + 0x70]
lea ecx, [esp + 0x6c]
call fcn.004039f0
mov eax, 0xf4240
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret 0xc
mov ecx, dword [esp + 0x110]
push edi
push ebp
push ecx
mov ecx, esi
call fcn.00500f40
mov eax, 0xf4240
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret 0xc
mov edx, dword [esp + 0x110]
push 1
push ebp
push edx
mov ecx, esi
call fcn.00500f40
mov eax, 0xf4240
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret 0xc
cmp eax, 0xf
je 0x4ffc75
cmp eax, 0xe
je 0x4ffc75
cmp eax, 2
je 0x4ffb14
cmp eax, 9
je 0x4ffb14
cmp eax, 3
jne case.0x4ff9db.14
lea edi, [ebx + 0x54]
push edi
lea eax, [esp + 0x98]
push eax
mov ecx, ebp
call fcn.004e2010
mov edx, dword [ebp]
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x84]
push ecx
mov ecx, ebp
mov dword [esp + 0x24], 0x3f800000
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0x3f800000
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0x3f800000
mov byte [esp + 0x48], 1
call dword [edx + 0x20]
fild dword [esp + 0x80]
fld dword [esp + 0x94]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x4ffbdf
fild dword [esp + 0x88]
fcomp dword [esp + 0x94]
fnstsw ax
test ah, 0x41
jne 0x4ffbdf
fild dword [esp + 0x84]
fcomp dword [esp + 0x98]
fnstsw ax
test ah, 0x41
jp 0x4ffbdf
fild dword [esp + 0x8c]
fcomp dword [esp + 0x98]
fnstsw ax
test ah, 0x41
je 0x4ffc17
mov al, byte [esi + 0x11]
test al, al
je 0x500e16
fcomp dword [esp + 0x94]
fnstsw ax
test ah, 5
jp case.0x4ff9db.14
fild dword [esp + 0x88]
fcomp dword [esp + 0x94]
fnstsw ax
test ah, 0x41
jne case.0x4ff9db.14
jmp 0x4ffc19
fstp st(0)
mov edx, dword [edi + 4]
mov eax, dword [edi]
push ebp
push edx
push eax
mov ecx, esi
call fcn.00501260
mov cl, byte [esi + 0x12]
test cl, cl
jne 0x4ffc52
test al, al
jne 0x4ffc52
mov ecx, dword [esp + 0x118]
push eax
push ecx
push ebp
push ebx
mov ecx, esi
call fcn.005013b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret 0xc
mov ecx, dword [esp + 0x118]
xor eax, eax
mov al, 1
push eax
push ecx
push ebp
push ebx
mov ecx, esi
call fcn.005013b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret 0xc
mov eax, dword [esp + 0x118]
xor edx, edx
mov dl, byte [esi + 0x12]
mov ecx, esi
push edx
push eax
push ebp
push ebx
call fcn.005013b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret 0xc
mov eax, dword [esi + 0xc]
test eax, eax
je 0x4ffca5
add eax, 4
jmp 0x4ffca7
xor eax, eax
push eax
call fcn.004fdfa0
mov ecx, dword [ebx + 0x54]
mov edx, dword [ebx + 0x58]
mov ebp, eax
mov eax, dword [esi + 8]
add esp, 4
test eax, eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], edx
je 0x500517
test dword [eax], 0xffffff00
je 0x500517
test eax, eax
je 0x4ffce0
add eax, 4
jmp 0x4ffce2
xor eax, eax
cmp byte [eax], 0
je 0x500517
mov eax, dword [esi + 8]
test eax, eax
je 0x4ffcf7
add eax, 4
jmp 0x4ffcf9
xor eax, eax
push eax
call fcn.004fe0f0
mov edi, eax
add esp, 4
test edi, edi
je 0x500517
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x84]
push ecx
mov ecx, edi
call fcn.004e2010
mov edx, dword [eax]
mov dword [esp + 0x48], edx
mov eax, dword [eax + 4]
mov dword [esp + 0x4c], eax
mov edx, dword [edi]
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x98]
push ecx
mov ecx, edi
mov dword [esp + 0x24], 0x3f800000
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0x3f800000
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0x3f800000
mov byte [esp + 0x48], 1
call dword [edx + 0x20]
mov ecx, eax
fild dword [ecx]
fcomp dword [esp + 0x48]
fnstsw ax
test ah, 0x41
jp 0x500517
fild dword [ecx + 8]
fcomp dword [esp + 0x48]
fnstsw ax
test ah, 0x41
jne 0x500517
fild dword [ecx + 4]
fcomp dword [esp + 0x4c]
fnstsw ax
test ah, 0x41
jp 0x500517
fild dword [ecx + 0xc]
fcomp dword [esp + 0x4c]
fnstsw ax
test ah, 0x41
jne 0x500517
push 0
push 0x697fa8
push 0x698108
push 0
push edi
call fcn.004893f8
add esp, 0x14
test eax, eax
je 0x4ffe1a
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
push 0xfa
push edx
push ecx
push 1
mov ecx, eax
call fcn.004e5af0
push eax
mov ecx, esi
call fcn.00500ec0
test al, al
je 0x500517
mov eax, dword [ebx + 8]
cmp eax, 1
je 0x4ffff0
cmp eax, 0xd
je 0x4ffff0
lea eax, [ebx + 0x54]
push eax
lea edx, [esp + 0x84]
push edx
mov ecx, ebp
call fcn.004e2010
mov ecx, dword [eax]
mov dword [ebx + 0x4c], ecx
mov edx, dword [eax + 4]
mov dword [ebx + 0x50], edx
mov al, byte [ebp + 0x217]
test al, al
je 0x4ffe61
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x5c]
jmp 0x4ffe6e
mov al, byte [ebp + 0x55]
test al, al
jne 0x4ffe76
mov al, byte [ebp + 0xed]
test al, al
je 0x4fffcc
mov al, byte [ebp + 0x217]
test al, al
je 0x4ffe8a
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x5c]
jmp 0x4ffe97
mov al, byte [ebp + 0x55]
test al, al
jne 0x4ffe9f
mov al, byte [ebp + 0xed]
test al, al
je 0x4fff3d
mov al, byte [ebp + 0x213]
test al, al
jne 0x4fff3d
mov ecx, dword [ebp + 0x244]
test ecx, ecx
je 0x4fff3d
lea edx, [esp + 0x58]
push edx
lea edx, [esp + 0x84]
mov dword [esp + 0x5c], 0x3f800000
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0x3f800000
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0x3f800000
mov byte [esp + 0x80], 1
mov eax, dword [ecx]
push edx
call dword [eax + 0x20]
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x88]
jge 0x4fff8c
mov ecx, dword [esp + 0x84]
cmp ecx, dword [esp + 0x8c]
jge 0x4fff8c
mov dword [esp + 0x1c], 0x3f800000
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0x3f800000
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0x3f800000
mov byte [esp + 0x40], 1
jmp 0x4fffbe
mov al, byte [ebp + 0x213]
test al, al
jne 0x4fff9e
mov esi, dword [ebp + 0x244]
jmp 0x4fffa0
xor esi, esi
test byte [esi + 8], 1
je 0x4fffad
mov ecx, esi
call fcn.004dbf70
add esi, 0x1dc
mov ecx, 0xa
lea edi, [esp + 0x1c]
rep movsd dword es:[edi], dword [esi]
lea edi, [ebx + 0x20]
mov ecx, 0xa
lea esi, [esp + 0x1c]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x118]
mov edx, dword [ebp]
push eax
push ebx
push ebp
mov ecx, ebp
call dword [edx + 0x74]
mov eax, 0xf4240
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret 0xc
mov al, byte [esi + 0x10]
test al, al
je 0x500401
test ebp, ebp
mov byte [esi + 0x10], 0
je 0x50005b
or ecx, 0xffffffff
xor eax, eax
mov edi, str.lb_cancelpopup
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.lb_cancelpopup
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], 0
call fcn.0049d9d0
push 0
push 0
push ebp
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x68]
call fcn.00500e60
lea ecx, [esp + 0x14]
call fcn.004039f0
mov edx, dword [ebp]
lea eax, [esp + 0x58]
push eax
mov ecx, ebp
call dword [edx + 0x70]
lea ecx, [esp + 0x6c]
call fcn.004039f0
mov esi, dword [esi + 8]
test esi, esi
je 0x500067
lea eax, [esi + 4]
jmp 0x500069
xor eax, eax
push eax
call fcn.004fe0f0
mov cl, byte [eax + 0x359]
add esp, 4
test cl, cl
je 0x5000a7
lea ecx, [esp + 0x14]
push ecx
mov ecx, eax
call fcn.004e32a0
mov eax, dword [eax]
test eax, eax
je 0x500093
add eax, 4
jmp 0x500095
xor eax, eax
push eax
call fcn.004fe820
add esp, 4
lea ecx, [esp + 0x14]
call fcn.004039f0
mov esi, dword [esp + 0x110]
mov ecx, esi
call fcn.004db4d0
mov ecx, esi
mov byte [eax + 0x164], 1
call fcn.004db4d0
mov edx, dword [eax]
push 0
mov ecx, eax
call dword [edx + 0x60]
mov eax, dword [esi + 8]
push 1
push 0
push 1
or eax, 7
push 1
mov dword [esi + 8], eax
sub esp, 0x10
or eax, 0xffffffff
mov edi, esp
mov dword [edi], eax
or ecx, 0xffffffff
mov dword [edi + 4], ecx
or edx, 0xffffffff
mov dword [edi + 8], edx
or eax, 0xffffffff
mov ecx, esi
mov dword [edi + 0xc], eax
call fcn.004db4d0
mov ecx, eax
call fcn.00506ef0
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0x14]
mov dword [esp + 0xac], eax
mov eax, ecx
mov dword [esp + 0xb4], ecx
mov ecx, dword [ebx + 0x18]
mov dword [esp + 0xb8], edx
mov edx, dword [ebx + 0x1c]
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xb4], eax
mov eax, dword [ebx + 0x48]
mov dword [esp + 0xc0], edx
mov edx, dword [ebx + 0x50]
lea esi, [ebx + 0x20]
mov ecx, 0xa
lea edi, [esp + 0xc4]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebx + 0x4c]
mov dword [esp + 0xec], eax
mov eax, dword [ebx + 0x54]
mov dword [esp + 0xf8], eax
mov eax, dword [ebx + 0x60]
test eax, eax
mov dword [esp + 0xf0], ecx
mov ecx, dword [ebx + 0x58]
mov dword [esp + 0xf4], edx
mov dl, byte [ebx + 0x5c]
mov dword [esp + 0xfc], ecx
mov byte [esp + 0x100], dl
mov dword [esp + 0x104], eax
je 0x5001b4
mov ecx, dword [eax]
and ecx, 0xff
cmp ecx, 0x80
jae 0x5001b4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov dl, byte [ebx + 0x64]
mov al, byte [ebx + 0x65]
mov ecx, dword [esp + 0x44]
mov bl, byte [ecx + 0x12]
mov byte [esp + 0x108], dl
lea edx, [esp + 0xf8]
mov byte [esp + 0x109], al
push edx
lea eax, [esp + 0x84]
push eax
mov ecx, ebp
mov dword [esp + 0xac], vtable.ytUIEvent.0
mov dword [esp + 0xb4], 4
call fcn.004e2010
mov ecx, dword [eax]
mov dword [esp + 0xf0], ecx
mov edx, dword [eax + 4]
mov al, byte [ebp + 0x217]
test al, al
mov dword [esp + 0xf4], edx
je 0x500223
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x5c]
jmp 0x500230
mov al, byte [ebp + 0x55]
test al, al
jne 0x500238
mov al, byte [ebp + 0xed]
test al, al
je 0x500392
mov al, byte [ebp + 0x217]
test al, al
je 0x50024c
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x5c]
jmp 0x500259
mov al, byte [ebp + 0x55]
test al, al
jne 0x500261
mov al, byte [ebp + 0xed]
test al, al
je 0x5002ff
mov al, byte [ebp + 0x213]
test al, al
jne 0x5002ff
mov ecx, dword [ebp + 0x244]
test ecx, ecx
je 0x5002ff
lea edx, [esp + 0x58]
push edx
lea edx, [esp + 0x84]
mov dword [esp + 0x5c], 0x3f800000
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0x3f800000
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0x3f800000
mov byte [esp + 0x80], 1
mov eax, dword [ecx]
push edx
call dword [eax + 0x20]
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x88]
jge 0x50034e
mov ecx, dword [esp + 0x84]
cmp ecx, dword [esp + 0x8c]
jge 0x50034e
mov dword [esp + 0x1c], 0x3f800000
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0x3f800000
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0x3f800000
mov byte [esp + 0x40], 1
jmp 0x500380
mov al, byte [ebp + 0x213]
test al, al
jne 0x500360
mov esi, dword [ebp + 0x244]
jmp 0x500362
xor esi, esi
test byte [esi + 8], 1
je 0x50036f
mov ecx, esi
call fcn.004dbf70
add esi, 0x1dc
mov ecx, 0xa
lea edi, [esp + 0x1c]
rep movsd dword es:[edi], dword [esi]
mov ecx, 0xa
lea esi, [esp + 0x1c]
lea edi, [esp + 0xc4]
rep movsd dword es:[edi], dword [esi]
test bl, bl
je 0x5003af
mov edx, dword [esp + 0x118]
push edx
lea eax, [esp + 0xa8]
push eax
mov ecx, ebp
call fcn.004e0f40
jmp 0x5003c8
mov eax, dword [esp + 0x118]
mov edx, dword [ebp]
push eax
lea ecx, [esp + 0xa8]
push ecx
push ebp
mov ecx, ebp
call dword [edx + 0x74]
lea ecx, [esp + 0x104]
mov dword [esp + 0xa4], vtable.ytUIEvent.0
call fcn.004039f0
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x110]
mov dword [eax], edx
mov eax, 0xf4240
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret 0xc
mov byte [esi + 0x10], 1
mov esi, dword [esi + 8]
test esi, esi
je 0x500411
lea eax, [esi + 4]
jmp 0x500413
xor eax, eax
push eax
call fcn.004fe0f0
mov cl, byte [eax + 0x359]
add esp, 4
test cl, cl
jne 0x500451
lea edx, [esp + 0x14]
push edx
mov ecx, eax
call fcn.004e32a0
mov eax, dword [eax]
test eax, eax
je 0x50043d
add eax, 4
jmp 0x50043f
xor eax, eax
push eax
call fcn.004fe820
add esp, 4
lea ecx, [esp + 0x14]
call fcn.004039f0
mov ecx, dword [esp + 0x110]
mov edi, dword [ecx + 8]
push 1
push 0
push 1
push 1
sub esp, 0x10
or eax, 0xffffffff
mov esi, esp
mov dword [esi], eax
or edi, 7
or edx, 0xffffffff
mov dword [ecx + 8], edi
mov dword [esi + 4], edx
or edi, 0xffffffff
or ebx, 0xffffffff
mov dword [esi + 8], edi
mov dword [esi + 0xc], ebx
call fcn.004db4d0
mov ecx, eax
call fcn.00506ef0
test ebp, ebp
je 0x5004ed
or ecx, 0xffffffff
xor eax, eax
mov edi, str.lb_beginpopup
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.lb_beginpopup
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], 0
call fcn.0049d9d0
push 0
push 0
push ebp
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x68]
call fcn.00500e60
lea ecx, [esp + 0x14]
call fcn.004039f0
mov edx, dword [ebp]
lea eax, [esp + 0x58]
push eax
mov ecx, ebp
call dword [edx + 0x70]
lea ecx, [esp + 0x6c]
call fcn.004039f0
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x110]
mov byte [ecx + 0x11], 1
mov dword [eax], edx
mov eax, 0xf4240
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret 0xc
mov al, byte [esi + 0x10]
test al, al
je case.0x4ff9db.14
test ebp, ebp
je case.0x4ff9db.14
lea edi, [ebx + 0x54]
push edi
lea ecx, [esp + 0x98]
push ecx
mov ecx, ebp
call fcn.004e2010
mov edx, dword [edi]
mov eax, dword [edi + 4]
push 0
push 0x698038
push 0x697ffc
push 0
push ebp
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], eax
call fcn.004893f8
mov edi, eax
add esp, 0x14
test edi, edi
je 0x500686
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x14], ecx
fld dword [esp + 0x14]
fistp dword [esp + 0x90]
fld dword [esp + 0x48]
fistp dword [esp + 0x14]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x90]
lea ecx, [esp + 0x80]
push ecx
mov ecx, edi
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], eax
call fcn.004ed1b0
neg eax
sbb al, al
inc al
lea edx, [esp + 0x48]
mov byte [esp + 0x1a], al
push edx
lea eax, [esp + 0x84]
push eax
mov ecx, ebp
call fcn.004e2010
mov ecx, dword [eax]
mov dword [esp + 0x48], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x4c], edx
mov eax, dword [edi]
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x84]
push edx
mov ecx, edi
mov dword [esp + 0x60], 0x3f800000
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0x3f800000
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0x3f800000
mov byte [esp + 0x84], 1
call dword [eax + 0x20]
mov ecx, eax
fild dword [ecx]
fcomp dword [esp + 0x48]
fnstsw ax
test ah, 0x41
jp 0x500686
fild dword [ecx + 8]
fcomp dword [esp + 0x48]
fnstsw ax
test ah, 0x41
jne 0x500686
fild dword [ecx + 4]
fcomp dword [esp + 0x4c]
fnstsw ax
test ah, 0x41
jp 0x500686
fild dword [ecx + 0xc]
fcomp dword [esp + 0x4c]
fnstsw ax
test ah, 0x41
jne 0x500686
mov al, byte [esp + 0x1a]
test al, al
mov byte [esp + 0x13], 1
jne 0x50068b
mov byte [esp + 0x13], 0
mov eax, dword [ebp]
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x84]
push edx
mov ecx, ebp
mov dword [esp + 0x60], 0x3f800000
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0x3f800000
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0x3f800000
mov byte [esp + 0x84], 1
call dword [eax + 0x20]
mov ecx, eax
fild dword [ecx]
fcomp dword [esp + 0x94]
fnstsw ax
test ah, 0x41
jp 0x500738
fild dword [ecx + 8]
fcomp dword [esp + 0x94]
fnstsw ax
test ah, 0x41
jne 0x500738
fild dword [ecx + 4]
fcomp dword [esp + 0x98]
fnstsw ax
test ah, 0x41
jp 0x500738
fild dword [ecx + 0xc]
fcomp dword [esp + 0x98]
fnstsw ax
test ah, 0x41
je 0x500745
mov al, byte [esp + 0x13]
test al, al
mov byte [esp + 0x19], 0
je 0x50074a
mov byte [esp + 0x19], 1
push 0
push 0x698038
push 0x697ffc
push 0
push ebp
call fcn.004893f8
mov ecx, dword [ebx + 8]
add esp, 0x14
test eax, eax
setne byte [esp + 0x1b]
cmp ecx, 1
mov eax, 0xf4241
jne 0x500ad2
mov al, byte [esp + 0x19]
test al, al
mov esi, dword [esp + 0x110]
jne 0x50089c
mov ebx, dword [esp + 0x44]
or ecx, 0xffffffff
xor eax, eax
mov byte [ebx + 0x10], 0
mov edi, str.lb_cancelpopup
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.lb_cancelpopup
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], 0
call fcn.0049d9d0
push 0
push 0
push ebp
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x68]
call fcn.00500e60
lea ecx, [esp + 0x14]
call fcn.004039f0
mov edx, dword [ebp]
lea eax, [esp + 0x58]
push eax
mov ecx, ebp
call dword [edx + 0x70]
lea ecx, [esp + 0x6c]
call fcn.004039f0
mov eax, dword [ebx + 8]
test eax, eax
je 0x5007f8
add eax, 4
jmp 0x5007fa
xor eax, eax
push eax
call fcn.004fe0f0
mov cl, byte [eax + 0x359]
add esp, 4
test cl, cl
je 0x50083e
lea ecx, [esp + 0x90]
push ecx
mov ecx, eax
call fcn.004e32a0
mov eax, dword [eax]
test eax, eax
je 0x500827
add eax, 4
jmp 0x500829
xor eax, eax
push eax
call fcn.004fe820
add esp, 4
lea ecx, [esp + 0x90]
call fcn.004039f0
mov ecx, esi
call fcn.004db4d0
mov ecx, esi
mov byte [eax + 0x164], 1
call fcn.004db4d0
mov edx, dword [eax]
push 0
mov ecx, eax
call dword [edx + 0x60]
mov ebp, dword [esi + 8]
push 1
push 0
push 1
push 1
sub esp, 0x10
or eax, 0xffffffff
mov ebx, esp
mov dword [ebx], eax
or ecx, 0xffffffff
mov dword [ebx + 4], ecx
or edx, 0xffffffff
mov dword [ebx + 8], edx
or ebp, 7
or edi, 0xffffffff
mov ecx, esi
mov dword [esi + 8], ebp
mov dword [ebx + 0xc], edi
call fcn.004db4d0
mov ecx, eax
call fcn.00506ef0
jmp 0x500a6e
mov eax, dword [esp + 0x44]
mov cl, byte [eax + 0x12]
test cl, cl
jne 0x5008b4
mov al, byte [esp + 0x13]
test al, al
mov byte [esp + 0x1a], 0
je 0x5008b9
mov byte [esp + 0x1a], 1
lea eax, [ebx + 0x54]
push eax
lea ecx, [esp + 0x84]
push ecx
mov ecx, ebp
call fcn.004e2010
mov edx, dword [eax]
mov dword [ebx + 0x4c], edx
mov eax, dword [eax + 4]
mov dword [ebx + 0x50], eax
mov al, byte [ebp + 0x217]
test al, al
je 0x5008eb
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x5c]
jmp 0x5008f8
mov al, byte [ebp + 0x55]
test al, al
jne 0x500900
mov al, byte [ebp + 0xed]
test al, al
je 0x500a46
mov al, byte [ebp + 0x217]
test al, al
je 0x500914
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x5c]
jmp 0x500921
mov al, byte [ebp + 0x55]
test al, al
jne 0x500929
mov al, byte [ebp + 0xed]
test al, al
je 0x5009b0
mov al, byte [ebp + 0x213]
test al, al
jne 0x5009b0
mov ecx, dword [ebp + 0x244]
test ecx, ecx
je 0x5009b0
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x4c]
mov dword [esp + 0x5c], 0x3f800000
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0x3f800000
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0x3f800000
mov byte [esp + 0x80], 1
mov edx, dword [ecx]
push eax
call dword [edx + 0x20]
mov ecx, dword [esp + 0x48]
cmp ecx, dword [esp + 0x50]
jge 0x5009ff
mov edx, dword [esp + 0x4c]
cmp edx, dword [esp + 0x54]
jge 0x5009ff
mov dword [esp + 0x1c], 0x3f800000
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0x3f800000
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0x3f800000
mov byte [esp + 0x40], 1
jmp 0x500a31
mov al, byte [ebp + 0x213]
test al, al
jne 0x500a11
mov esi, dword [ebp + 0x244]
jmp 0x500a13
xor esi, esi
test byte [esi + 8], 1
je 0x500a20
mov ecx, esi
call fcn.004dbf70
add esi, 0x1dc
mov ecx, 0xa
lea edi, [esp + 0x1c]
rep movsd dword es:[edi], dword [esi]
lea edi, [ebx + 0x20]
mov ecx, 0xa
lea esi, [esp + 0x1c]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x110]
mov al, byte [esp + 0x1a]
test al, al
mov eax, dword [esp + 0x118]
push eax
mov ecx, ebp
push ebx
je 0x500a60
call fcn.004e0f40
jmp 0x500a67
mov edx, dword [ebp]
push ebp
call dword [edx + 0x74]
cmp eax, 0xf4241
jne 0x500a73
mov eax, 0xf4240
mov cl, byte [esp + 0x19]
test cl, cl
je 0x500a8b
mov dl, byte [esp + 0x13]
test dl, dl
jne 0x500a8b
mov edx, dword [esp + 0x44]
mov byte [edx + 0x11], 1
mov dl, byte [esp + 0x1b]
test dl, dl
je 0x500ab5
mov cl, byte [esp + 0x13]
test cl, cl
jne 0x500e1d
mov ecx, dword [esp + 0x118]
mov dword [ecx], esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret 0xc
test cl, cl
je 0x500e1d
mov edx, dword [esp + 0x44]
mov byte [edx + 0x10], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret 0xc
mov cl, byte [esp + 0x1b]
test cl, cl
je 0x500c11
mov dl, byte [esp + 0x13]
test dl, dl
jne 0x500c11
mov dl, byte [esp + 0x19]
test dl, dl
je 0x500c19
mov byte [esi + 0x10], 0
mov esi, dword [esi + 8]
test esi, esi
je 0x500b06
lea eax, [esi + 4]
jmp 0x500b08
xor eax, eax
push eax
call fcn.004fe0f0
mov cl, byte [eax + 0x359]
add esp, 4
test cl, cl
je 0x500b4c
lea ecx, [esp + 0x90]
push ecx
mov ecx, eax
call fcn.004e32a0
mov eax, dword [eax]
test eax, eax
je 0x500b35
add eax, 4
jmp 0x500b37
xor eax, eax
push eax
call fcn.004fe820
add esp, 4
lea ecx, [esp + 0x90]
call fcn.004039f0
mov edi, dword [esp + 0x110]
mov ecx, edi
call fcn.004db4d0
mov ecx, edi
mov byte [eax + 0x164], 1
call fcn.004db4d0
mov edx, dword [eax]
push 0
mov ecx, eax
call dword [edx + 0x60]
mov ebx, dword [edi + 8]
push 1
push 0
push 1
push 1
sub esp, 0x10
or eax, 0xffffffff
mov esi, esp
mov dword [esi], eax
or ecx, 0xffffffff
mov dword [esi + 4], ecx
or ebx, 7
or edx, 0xffffffff
mov dword [edi + 8], ebx
mov dword [esi + 8], edx
or ebx, 0xffffffff
mov ecx, edi
mov dword [esi + 0xc], ebx
call fcn.004db4d0
mov ecx, eax
call fcn.00506ef0
or ecx, 0xffffffff
xor eax, eax
mov edi, str.lb_endpopup
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.lb_endpopup
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], 0
call fcn.0049d9d0
push 0
push 0
push ebp
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x68]
call fcn.00500e60
lea ecx, [esp + 0x14]
call fcn.004039f0
mov edx, dword [ebp]
lea eax, [esp + 0x58]
push eax
mov ecx, ebp
call dword [edx + 0x70]
lea ecx, [esp + 0x6c]
mov esi, eax
call fcn.004039f0
mov eax, esi
mov esi, dword [esp + 0x44]
jmp 0x500df1
mov dl, byte [esp + 0x19]
test dl, dl
jne 0x500c2d
test cl, cl
je 0x500df1
mov cl, byte [esp + 0x19]
test cl, cl
jne 0x500df9
mov al, byte [esi + 0x12]
test al, al
jne 0x500c41
mov al, byte [esp + 0x13]
test al, al
mov byte [esp + 0x1a], 0
je 0x500c46
mov byte [esp + 0x1a], 1
lea eax, [ebx + 0x54]
push eax
lea ecx, [esp + 0x84]
push ecx
mov ecx, ebp
call fcn.004e2010
mov edx, dword [eax]
mov dword [ebx + 0x4c], edx
mov eax, dword [eax + 4]
mov dword [ebx + 0x50], eax
mov al, byte [ebp + 0x217]
test al, al
je 0x500c78
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x5c]
jmp 0x500c85
mov al, byte [ebp + 0x55]
test al, al
jne 0x500c8d
mov al, byte [ebp + 0xed]
test al, al
je 0x500dd0
mov al, byte [ebp + 0x217]
test al, al
je 0x500ca1
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x5c]
jmp 0x500cae
mov al, byte [ebp + 0x55]
test al, al
jne 0x500cb6
mov al, byte [ebp + 0xed]
test al, al
je 0x500d3d
mov al, byte [ebp + 0x213]
test al, al
jne 0x500d3d
mov ecx, dword [ebp + 0x244]
test ecx, ecx
je 0x500d3d
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x4c]
mov dword [esp + 0x5c], 0x3f800000
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0x3f800000
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0x3f800000
mov byte [esp + 0x80], 1
mov edx, dword [ecx]
push eax
call dword [edx + 0x20]
mov ecx, dword [esp + 0x48]
cmp ecx, dword [esp + 0x50]
jge 0x500d8c
mov edx, dword [esp + 0x4c]
cmp edx, dword [esp + 0x54]
jge 0x500d8c
mov dword [esp + 0x1c], 0x3f800000
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0x3f800000
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0x3f800000
mov byte [esp + 0x40], 1
jmp 0x500dbe
mov al, byte [ebp + 0x213]
test al, al
jne 0x500d9e
mov esi, dword [ebp + 0x244]
jmp 0x500da0
xor esi, esi
test byte [esi + 8], 1
je 0x500dad
mov ecx, esi
call fcn.004dbf70
add esi, 0x1dc
mov ecx, 0xa
lea edi, [esp + 0x1c]
rep movsd dword es:[edi], dword [esi]
lea edi, [ebx + 0x20]
mov ecx, 0xa
lea esi, [esp + 0x1c]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x44]
mov al, byte [esp + 0x1a]
test al, al
mov eax, dword [esp + 0x118]
push eax
mov ecx, ebp
push ebx
je 0x500dea
call fcn.004e0f40
jmp 0x500df1
mov edx, dword [ebp]
push ebp
call dword [edx + 0x74]
mov cl, byte [esp + 0x19]
test cl, cl
je 0x500e05
mov cl, byte [esp + 0x1b]
test cl, cl
jne 0x500e05
mov byte [esi + 0x10], 0
mov byte [esi + 0x11], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret 0xc
fstp st(0)
mov eax, 0xf4241
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret 0xc