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

Disassembly:
push 0xffffffffffffffff
push 0x54a320
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x64
push ebx
push ebp
push esi
mov esi, ecx
push edi
lea ecx, [esp + 0x60]
call fcn.00473490
mov ebp, dword [esp + 0x84]
xor edi, edi
xor eax, eax
cmp ebp, 0x2020032
mov dword [esp + 0x7c], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edi
je 0x4f3380
cmp ebp, 0x2020033
je 0x4f3380
test byte [esp + 0x88], 0xf
je 0x4f3380
test ebp, 0x80000000
jne 0x4f3380
mov ecx, dword [esi + 0x5c]
cmp dword [ecx + 0x2d8], 1
je 0x4f3188
cmp dword [ecx + 0x2d4], edi
je 0x4f330c
cmp ebp, 0x2020054
jne 0x4f3f0c
mov eax, dword [0x596a0c]
mov dword [esp + 0x84], eax
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x8c]
lea ecx, [esp + 0x84]
push edi
push ecx
push edx
push eax
mov ecx, esi
mov byte [esp + 0x8c], 1
call fcn.004ec4f0
cmp eax, edi
mov dword [esp + 0x88], eax
je 0x4f32ee
mov ecx, dword [esi + 0x4c]
mov eax, dword [ecx + 8]
cmp eax, edi
je 0x4f32ee
mov ecx, dword [esi + 0x5c]
lea edx, [esp + 0x8c]
push edi
push edx
push eax
add ecx, 0x20c
call fcn.004d2df0
test eax, eax
je 0x4f32ee
mov ebp, dword [esp + 0x84]
xor ebx, ebx
mov ecx, dword [esi + 0x5c]
lea eax, [esp + 0x90]
push eax
push ebx
add ecx, 0x1f0
call fcn.004d2d50
test eax, eax
je 0x4f32ee
mov eax, dword [esp + 0x90]
mov ecx, dword [esi + 0x4c]
mov edx, dword [eax + 8]
cmp edx, dword [ecx + 8]
jne 0x4f324f
mov eax, dword [eax]
push ebp
push eax
call fcn.00501dcd
add esp, 8
test eax, eax
je 0x4f3252
inc ebx
jmp 0x4f320e
mov ecx, dword [esi + 0x5c]
push ebx
add ecx, 0x1f0
call fcn.004d2d90
cmp eax, edi
je 0x4f32ee
mov edx, dword [esp + 0x8c]
cmp dword [edx + 0x3c], edi
jne 0x4f3279
xor ecx, ecx
jmp 0x4f327c
mov ecx, dword [edx + 0x34]
push eax
mov eax, dword [edx + 0x3c]
shr eax, 2
push eax
push ecx
call fcn.004744a0
add esp, 0xc
mov ecx, 0x599ae0
mov esi, eax
push edi
push edi
push edi
push edi
call fcn.00408260
mov ecx, dword [esp + 0x8c]
push ecx
push 1
mov ecx, 0x599ae0
call fcn.00408690
cmp eax, edi
je 0x4f32ee
mov edx, dword [esp + 0x88]
xor ebx, ebx
push edi
push edi
mov ecx, dword [edx + 0xc]
mov edx, dword [eax]
cmp ecx, edi
setg bl
lea ecx, [ebx + ecx + 2]
push ecx
push esi
mov ecx, eax
call dword [edx + 0xd8]
lea ecx, [esp + 0x84]
mov byte [esp + 0x7c], 0
call fcn.00519976
jmp 0x4f3f0c
push 0x30
call dword [sym.imp.USER32.dll_MessageBeep]
lea ecx, [esp + 0x84]
mov byte [esp + 0x7c], 0
call fcn.00519976
jmp 0x4f3f0c
cmp ebp, 0x2020054
jne 0x4f3359
mov edx, dword [esi + 0x4c]
mov eax, dword [edx + 8]
cmp eax, edi
je 0x4f3359
lea edx, [esp + 0x1c]
push edi
push edx
push eax
add ecx, 0x20c
call fcn.004d2df0
cmp eax, 1
jne 0x4f3359
mov eax, dword [esp + 0x1c]
mov ecx, 0x599ae0
push eax
push 1
call fcn.00408690
cmp eax, edi
mov dword [esp + 0x18], eax
je 0x4f3359
mov edx, dword [eax]
lea ecx, [esp + 0x60]
push ecx
mov ecx, eax
jmp 0x4f3362
mov edx, dword [esi]
lea eax, [esp + 0x60]
push eax
mov ecx, esi
call dword [edx + 0xd0]
lea ecx, [esp + 0x60]
push ecx
mov ecx, 0x59a578
call fcn.004e7e80
mov eax, 1
mov dword [esp + 0x14], eax
lea ecx, [ebp - 0x2020004]
cmp ecx, 0x7c
ja case.0x4f339a.33685525
or edi, 0xffffffff
xor edx, edx
mov dl, byte [ecx + 0x4f3fb4]
jmp dword [edx*4 + 0x4f3f6c]
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x8c]
push eax
push ecx
mov ecx, esi
call fcn.0048e760
jmp 0x4f3ed6
mov edx, dword [esi + 0x4c]
mov ecx, dword [esi + 0x5c]
push edx
add ecx, 0x244
call fcn.004d2d00
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x90]
push 0
push 0
mov ecx, dword [eax]
mov dword [esp + 0x2c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x30], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x34], ecx
mov ecx, dword [esi + 0x4c]
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x94]
push eax
add ecx, 0x14
mov dword [esp + 0x3c], edx
call fcn.004d26d0
mov ebp, eax
test ebp, ebp
je 0x4f3ed6
lea ebx, [ebp + 0x18]
push ebx
call fcn.00474410
add ebx, eax
push ebx
call fcn.00474410
mov ecx, dword [ebp]
mov edi, dword [ebx + eax]
add esp, 8
add ebx, eax
push 0
push ecx
mov ecx, dword [esi + 0x5c]
call fcn.00450af0
test edi, edi
mov dword [esp + 0x90], eax
je 0x4f3ed6
test eax, eax
je 0x4f3ed6
mov edx, dword [edi + 0x1c]
push edx
call dword [sym.imp.USER32.dll_GetParent]
push eax
call fcn.0051b300
test eax, eax
mov dword [esp + 0x84], eax
je 0x4f3ed6
mov ecx, dword [esp + 0x84]
lea eax, [esp + 0x24]
push eax
call fcn.0052251c
mov edx, dword [esp + 0x24]
cmp edx, 0xffff8001
jl 0x4f349d
cmp edx, 0x7fff
jge 0x4f34a4
jmp 0x4f34ad
mov edx, 0xffff8001
jmp 0x4f34a9
mov edx, 0x7fff
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0x28]
cmp ecx, 0xffff8001
jl 0x4f34c3
cmp ecx, 0x7fff
jge 0x4f34ca
jmp 0x4f34d3
mov ecx, 0xffff8001
jmp 0x4f34cf
mov ecx, 0x7fff
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x2c]
sub eax, edx
js 0x4f34e2
cmp eax, 0x7fff
jge 0x4f34ee
xor ebx, ebx
test eax, eax
setl bl
dec ebx
and ebx, eax
jmp 0x4f34f3
mov ebx, 0x7fff
mov eax, dword [esp + 0x30]
sub eax, ecx
js 0x4f3502
cmp eax, 0x7fff
jge 0x4f3514
xor edx, edx
test eax, eax
setl dl
dec edx
and edx, eax
mov ebp, edx
mov edx, dword [esp + 0x24]
jmp 0x4f3519
mov ebp, 0x7fff
lea eax, [ebx + edx]
add ecx, ebp
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ecx
mov eax, dword [edi + 0x1c]
lea edx, [esp + 0x38]
push edx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [esi + 0x90]
call fcn.0052251c
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push 0x14
push ebp
push ebx
push edx
push eax
push 0
mov ecx, edi
call fcn.0051ac9c
mov ecx, dword [esp + 0x90]
test dword [ecx + 0x14], 0x100000
je 0x4f3585
mov eax, dword [esi + 0x90]
push 0
push 0
push 0x8004
mov edx, dword [eax + 0x1c]
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [edi + 0x1c]
lea eax, [esp + 0x24]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov edi, dword [esp + 0x84]
lea edx, [esp + 0x24]
push edx
mov ecx, edi
call fcn.0052251c
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x8c]
mov ebx, dword [esp + 0x88]
mov ecx, dword [esi + 0x4c]
push 0xfffffffffffffffd
push eax
push ebp
push ebx
push ecx
mov ecx, esi
call fcn.004ed4c0
mov edx, dword [esi + 0x90]
mov eax, dword [edi + 0x1c]
cmp eax, dword [edx + 0x1c]
jne 0x4f35e0
mov ecx, esi
call fcn.004f90c0
jmp 0x4f35e2
xor eax, eax
mov ecx, dword [esp + 0x28]
mov edx, ecx
sub edx, eax
cmp edx, 0xffff8001
jl 0x4f361b
mov eax, dword [esi + 0x90]
mov edx, dword [edi + 0x1c]
cmp edx, dword [eax + 0x1c]
jne 0x4f360d
mov ecx, esi
call fcn.004f90c0
mov ecx, dword [esp + 0x28]
jmp 0x4f360f
xor eax, eax
mov edx, ecx
sub edx, eax
cmp edx, 0x7fff
jge 0x4f3672
mov eax, dword [esi + 0x90]
mov edx, dword [edi + 0x1c]
cmp edx, dword [eax + 0x1c]
jne 0x4f3636
mov ecx, esi
call fcn.004f90c0
mov ecx, dword [esp + 0x28]
jmp 0x4f3638
xor eax, eax
mov edx, ecx
sub edx, eax
cmp edx, 0xffff8001
jge 0x4f364b
mov eax, 0xffff8001
jmp 0x4f3677
mov eax, dword [esi + 0x90]
mov edx, dword [edi + 0x1c]
cmp edx, dword [eax + 0x1c]
jne 0x4f366a
mov ecx, esi
call fcn.004f90c0
mov ecx, dword [esp + 0x28]
sub ecx, eax
mov eax, ecx
jmp 0x4f3677
xor eax, eax
sub ecx, eax
mov eax, ecx
jmp 0x4f3677
mov eax, 0x7fff
push 0xfffffffffffffffc
push eax
mov eax, dword [esi + 0x4c]
push ebp
push ebx
push eax
mov ecx, esi
call fcn.004ed4c0
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
mov edx, dword [esi + 0x4c]
sub ecx, eax
push 0xfffffffffffffffb
push ecx
push ebp
push ebx
push edx
mov ecx, esi
call fcn.004ed4c0
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
mov ecx, dword [esi + 0x4c]
sub eax, edx
push 0xfffffffffffffffa
push eax
push ebp
push ebx
push ecx
mov ecx, esi
call fcn.004ed4c0
mov edx, dword [esi + 0x90]
mov eax, dword [edi + 0x1c]
cmp eax, dword [edx + 0x1c]
je 0x4f36e5
lea ecx, [esp + 0x24]
push ecx
mov ecx, edi
call fcn.00522558
mov ecx, dword [esi + 0x90]
lea edx, [esp + 0x24]
push edx
call fcn.0052251c
lea eax, [esp + 0x38]
lea ecx, [esp + 0x24]
push eax
lea edx, [esp + 0x28]
push ecx
push edx
call dword [sym.imp.USER32.dll_UnionRect]
lea eax, [esp + 0x24]
push 1
push eax
mov ecx, esi
call fcn.004f5f70
mov ecx, esi
call fcn.004f5bc0
jmp 0x4f3ed6
lea ecx, [esp + 0x38]
call fcn.00473490
mov ebx, 0x54d910
mov dword [esp + 0x38], ebx
lea ecx, [esp + 0x4c]
mov byte [esp + 0x7c], 2
call fcn.00473490
mov dword [esp + 0x4c], ebx
mov edx, dword [esp + 0x8c]
xor ecx, ecx
mov dword [esp + 0x24], ecx
push edx
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x3c]
mov byte [esp + 0x80], 3
call fcn.00473750
push 0xfffffffffffffffb
lea ecx, [esp + 0x50]
call fcn.00473750
mov ebx, dword [esp + 0x90]
lea ecx, [esp + 0x24]
mov eax, ebx
lea edx, [esp + 0x38]
and eax, 0xffff
push ecx
push edx
mov ecx, esi
mov dword [esp + 0x2c], eax
call fcn.0048e760
mov eax, dword [esp + 0x5c]
shr eax, 2
test eax, eax
jle 0x4f379e
mov ecx, dword [esp + 0x54]
mov dword [ecx], 0xfffffffa
lea edx, [esp + 0x24]
lea eax, [esp + 0x38]
shr ebx, 0x10
push edx
push eax
mov ecx, esi
mov dword [esp + 0x2c], ebx
call fcn.0048e760
mov edi, 0x54d7d0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x7c], 4
mov dword [esp + 0x4c], edi
call fcn.00473690
mov byte [esp + 0x7c], 0
mov dword [esp + 0x38], edi
lea ecx, [esp + 0x38]
jmp 0x4f3ed1
mov eax, dword [esi + 0x78]
test eax, eax
jne 0x4f3ed6
push ebp
mov ecx, esi
call fcn.004f4460
jmp 0x4f3ed6
mov eax, dword [esi + 0x78]
test eax, eax
jne 0x4f3ed6
push ebp
mov ecx, esi
call fcn.004f4080
jmp 0x4f3ed6
mov eax, dword [esi + 0x78]
test eax, eax
jne 0x4f3ed6
mov ecx, dword [esi + 0x4c]
push ecx
mov ecx, dword [esi + 0x5c]
add ecx, 0x244
call fcn.004d2d00
xor edx, edx
cmp ebp, 0x2020076
mov ebp, dword [esi + 0x8c]
mov edi, eax
sete dl
shr ebp, 2
xor ebx, ebx
mov dword [esp + 0x8c], edx
test ebp, ebp
jle 0x4f3877
mov ecx, dword [esi + 0x84]
mov eax, dword [esp + 0x8c]
push eax
mov eax, dword [esi + 0x4c]
mov edx, dword [ecx + ebx*4]
push 0x80000000
push edx
push edi
push eax
mov ecx, esi
call fcn.004ed220
inc ebx
cmp ebx, ebp
jl 0x4f384f
push 0
mov ecx, esi
call fcn.004f5820
jmp 0x4f3ed6
mov eax, dword [esi + 0x78]
test eax, eax
jne 0x4f3ed6
lea ecx, [esp + 0x38]
call fcn.00473490
lea ecx, [esp + 0x38]
push 0
push ecx
mov ecx, esi
mov byte [esp + 0x84], 5
call fcn.004f7cf0
mov edx, dword [esp + 0x48]
shr edx, 2
test edx, edx
jle 0x4f3948
add ebp, 0xfdfdffc1
xor ecx, ecx
xor eax, eax
cmp ebp, 7
ja case.default.0x4f38cd
jmp dword [ebp*4 + 0x4f4034]
mov ecx, edi
jmp case.default.0x4f38cd
mov eax, edi
jmp case.default.0x4f38cd
mov ecx, dword [0x5999c0]
cmp ecx, 1
jge 0x4f38ec
mov ecx, 1
neg ecx
jmp case.default.0x4f38cd
mov ecx, dword [0x5999c0]
cmp ecx, 1
jge case.default.0x4f38cd
mov ecx, 1
jmp case.default.0x4f38cd
mov eax, dword [0x5999c4]
cmp eax, 1
jge 0x4f3911
mov eax, 1
neg eax
jmp case.default.0x4f38cd
mov eax, dword [0x5999c4]
cmp eax, 1
jge case.default.0x4f38cd
mov eax, 1
and eax, 0xffff
and ecx, 0xffff
shl eax, 0x10
or eax, ecx
mov ecx, esi
push eax
lea eax, [esp + 0x3c]
push eax
push 0
push 0x202003d
call fcn.004f3100
mov byte [esp + 0x7c], 0
mov dword [esp + 0x38], 0x54d7d0
lea ecx, [esp + 0x38]
jmp 0x4f3ed1
mov ecx, dword [esi + 0x4c]
push ecx
mov ecx, dword [esi + 0x5c]
add ecx, 0x244
call fcn.004d2d00
mov ebx, eax
add ebp, 0xfdfdffb9
xor eax, eax
cmp ebp, 7
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
ja case.default.0x4f3991
jmp dword [ebp*4 + 0x4f4054]
mov dword [esp + 0x8c], edi
jmp case.default.0x4f3991
mov dword [esp + 0x90], edi
jmp case.default.0x4f3991
mov dword [esp + 0x90], 1
jmp case.default.0x4f3991
mov eax, dword [0x5999c0]
cmp eax, 1
jge 0x4f39c6
mov eax, 1
neg eax
mov dword [esp + 0x8c], eax
jmp case.default.0x4f3991
mov eax, dword [0x5999c0]
cmp eax, 1
jge 0x4f39c8
mov dword [esp + 0x8c], 1
jmp case.default.0x4f3991
mov eax, dword [0x5999c4]
cmp eax, 1
jge 0x4f39f7
mov eax, 1
neg eax
jmp 0x4f3a10
mov eax, dword [0x5999c4]
mov dword [esp + 0x90], 1
cmp eax, 1
jl case.default.0x4f3991
mov dword [esp + 0x90], eax
lea ecx, [esp + 0x24]
call fcn.00473490
mov eax, dword [esi + 0x78]
mov byte [esp + 0x7c], 6
cmp eax, 1
push 0
jne 0x4f3a46
mov ecx, dword [esi + 0x4c]
add ecx, 0x14
call fcn.004d2630
push eax
lea ecx, [esp + 0x28]
call fcn.00473750
jmp 0x4f3a52
lea edx, [esp + 0x28]
mov ecx, esi
push edx
call fcn.004f7cf0
mov ecx, dword [esp + 0x34]
mov ebp, dword [esp + 0x2c]
mov eax, ecx
neg eax
sbb eax, eax
shr ecx, 2
and eax, ebp
test ecx, ecx
jle 0x4f3b4e
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ecx
mov ebp, dword [eax]
mov ecx, dword [esi + 0x4c]
push 0
push 0
push ebp
add ecx, 0x14
call fcn.004d26d0
test eax, eax
je 0x4f3b28
lea edi, [eax + 0x18]
push edi
call fcn.00474410
add edi, eax
push edi
call fcn.00474410
mov edx, dword [edi + eax + 8]
mov ecx, dword [edi + eax + 0x10]
lea eax, [edi + eax + 4]
add esp, 8
add ecx, edx
mov edi, dword [eax]
mov eax, dword [eax + 8]
add eax, edi
push ecx
push eax
push edx
lea eax, [esp + 0x44]
push edi
push eax
call dword [sym.imp.USER32.dll_SetRect]
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x8c]
sub ecx, edi
push 0xfffffffffffffffb
lea eax, [ecx + edx]
xor ecx, ecx
test eax, eax
mov edx, dword [esi + 0x4c]
setl cl
dec ecx
and eax, ecx
mov ecx, esi
push eax
push ebp
push ebx
push edx
call fcn.004ed4c0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x3c]
sub eax, ecx
mov ecx, dword [esp + 0x90]
add eax, ecx
xor edx, edx
test eax, eax
setl dl
dec edx
push 0xfffffffffffffffa
and eax, edx
mov ecx, esi
push eax
mov eax, dword [esi + 0x4c]
push ebp
push ebx
push eax
call fcn.004ed4c0
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x88]
add eax, 4
dec ecx
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ecx
jne 0x4f3a7b
mov ecx, esi
call fcn.004f5110
push 0
push 0
mov ecx, esi
call fcn.004f5f70
cmp dword [esi + 0x78], 1
jne 0x4f3b74
mov ecx, dword [esi + 0x1c]
push 0
push 0
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, esi
call fcn.004f5bc0
mov byte [esp + 0x7c], 0
mov dword [esp + 0x24], 0x54d7d0
lea ecx, [esp + 0x24]
jmp 0x4f3ed1
mov eax, dword [esp + 0x90]
movsx ebx, ax
shr eax, 0x10
movsx eax, ax
test ebx, ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], eax
jne 0x4f3bb5
test eax, eax
je 0x4f3ed6
mov ecx, dword [esp + 0x8c]
mov eax, dword [ecx + 0x10]
mov edi, eax
shr edi, 2
test eax, eax
jne 0x4f3bcc
xor ebp, ebp
jmp 0x4f3bcf
mov ebp, dword [ecx + 8]
mov edx, dword [esi + 0x4c]
mov ecx, dword [esi + 0x5c]
push edx
add ecx, 0x244
call fcn.004d2d00
test edi, edi
mov dword [esp + 0x90], eax
jle 0x4f3d5e
mov dword [esp + 0x88], ebp
mov dword [esp + 0x10], edi
mov eax, dword [ebp]
mov ecx, dword [esi + 0x4c]
push 0
push 0
push eax
add ecx, 0x14
mov dword [esp + 0x98], eax
call fcn.004d26d0
test eax, eax
je 0x4f3d3e
lea edi, [eax + 0x18]
push edi
call fcn.00474410
add edi, eax
push edi
call fcn.00474410
mov ebp, dword [edi + eax]
add edi, eax
add esp, 8
lea eax, [esp + 0x38]
mov ecx, dword [ebp + 0x1c]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov edx, dword [ebp + 0x1c]
push edx
call dword [sym.imp.USER32.dll_GetParent]
push eax
call fcn.0051b300
lea ecx, [esp + 0x38]
push ecx
mov ecx, eax
call fcn.0052251c
mov eax, dword [edi + 0x18]
mov dword [esp + 0x84], 0
test eax, eax
jne 0x4f3c8b
mov ecx, esi
call fcn.004f90c0
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x84], eax
sub ecx, eax
mov dword [esp + 0x3c], ecx
mov edx, dword [esp + 0x38]
add ebx, edx
cmp ebx, 0xffff8001
jl 0x4f3ca9
cmp ebx, 0x7fff
jge 0x4f3cb0
cmp ebx, 0xffff8001
jge 0x4f3cb5
mov ebx, 0xffff8001
jmp 0x4f3cb5
mov ebx, 0x7fff
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
mov edx, dword [esi + 0x4c]
push 0xfffffffffffffffd
push ebx
push eax
push ecx
push edx
mov ecx, esi
call fcn.004ed4c0
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
lea edi, [eax + ecx]
cmp edi, 0xffff8001
jl 0x4f3cf6
cmp edi, 0x7fff
jge 0x4f3cfd
cmp edi, 0xffff8001
jge 0x4f3d02
mov edi, 0xffff8001
jmp 0x4f3d02
mov edi, 0x7fff
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x90]
mov ecx, dword [esi + 0x4c]
push 0xfffffffffffffffc
push edi
push edx
push eax
push ecx
mov ecx, esi
call fcn.004ed4c0
mov edx, dword [esp + 0x84]
push 0x15
push 0
add edi, edx
push 0
push edi
push ebx
push 0
mov ecx, ebp
call fcn.0051ac9c
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x88]
mov eax, dword [esp + 0x10]
add ebp, 4
dec eax
mov dword [esp + 0x88], ebp
mov dword [esp + 0x10], eax
jne 0x4f3bfb
push 0
push 0
mov ecx, esi
call fcn.004f5f70
mov ecx, esi
call fcn.004f5bc0
jmp 0x4f3ed6
mov eax, dword [esp + 0x8c]
mov ecx, esi
push eax
call fcn.004eb5c0
jmp 0x4f3ed6
push ebp
mov ecx, esi
call fcn.004f4b90
jmp 0x4f3ed6
push ebp
mov ecx, esi
call fcn.004ec350
jmp 0x4f3ed6
mov ecx, esi
call fcn.004f8480
mov ecx, esi
call fcn.004f4970
jmp 0x4f3ed6
mov ecx, esi
call fcn.004f87e0
jmp 0x4f3ed6
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x8c]
push ecx
push edx
mov ecx, esi
call fcn.004ec7d0
jmp 0x4f3ed6
mov ecx, 0x599ba0
call fcn.00455700
test eax, eax
jne 0x4f3e22
push 0x5963dc
mov ecx, 0x59a3e8
call fcn.00519ab3
mov eax, dword [0x59a38c]
mov dword [0x59a3ec], 0x40
push 0
push 0x73
mov ecx, dword [eax + 0x1c]
push 0x111
push ecx
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x4f3ed6
mov edx, dword [esi + 0x4c]
mov ecx, dword [esi + 0x5c]
push edx
add ecx, 0x244
call fcn.004d2d00
lea ecx, [esp + 0x38]
mov ebx, eax
call fcn.00473490
lea eax, [esp + 0x38]
mov ecx, 0x599ae0
push eax
push ebx
mov byte [esp + 0x84], 7
call fcn.00435190
cmp eax, 1
jne 0x4f3ec0
mov ecx, esi
call fcn.004f9120
mov ecx, esi
call fcn.004f5110
cmp dword [0x59995c], 1
jne 0x4f3eae
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4f3eae
mov edi, dword [esp + 0x40]
test edi, edi
je 0x4f3eae
cmp byte [edi], 0
je 0x4f3eae
push edi
mov ebx, edi
call fcn.00474410
add edi, eax
push edi
mov ebp, edi
call fcn.00474410
mov ecx, dword [esi + 0x4c]
add esp, 8
add edi, eax
push ebp
push ebx
call fcn.004ced50
cmp byte [edi], 0
jne 0x4f3e88
push 0
push 0
push 0
push 0
mov ecx, 0x599ae0
call fcn.00408260
mov byte [esp + 0x7c], 0
mov dword [esp + 0x38], 0x54d7d0
lea ecx, [esp + 0x38]
call fcn.00473690
cmp dword [esp + 0x14], 1
jne 0x4f3f0c
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x4f3eee
mov edx, dword [ecx]
lea eax, [esp + 0x60]
push eax
jmp 0x4f3ef7
mov edx, dword [esi]
lea eax, [esp + 0x60]
push eax
mov ecx, esi
call dword [edx + 0xd0]
lea ecx, [esp + 0x60]
push ecx
mov ecx, 0x59a578
call fcn.004e7f50
lea ecx, [esp + 0x60]
mov dword [esp + 0x7c], 0xffffffff
mov dword [esp + 0x60], 0x54d7d0
call fcn.00473690
mov eax, 1
jmp 0x4f3f56
cmp eax, 1
jne 0x4f3f3b
mov ecx, 0x59a578
call fcn.004e7f20
lea ecx, [esp + 0x60]
mov dword [esp + 0x7c], 0xffffffff
mov dword [esp + 0x60], 0x54d7d0
call fcn.00473690
xor eax, eax
mov ecx, dword [esp + 0x74]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x70
ret 0x10