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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x57b3b3
mov eax, dword fs:[0]
push eax
sub esp, 0x60
push ebx
push esi
push edi
mov eax, dword [0x5d52e0]
xor eax, esp
push eax
lea eax, [esp + 0x70]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x118]
cmp eax, 0xe00
jg 0x561016
je 0x560f7c
cmp eax, 0xcff
je 0x560bd9
cmp eax, 0xdf6
jne 0x5611a4
mov eax, dword [esi + 0x110]
mov edi, 0x23b4
push eax
mov edx, 0x50000
mov dword [esp + 0x14], edi
call fcn.0054e0a0
sub eax, 0x1235
je 0x560a76
dec eax
jne 0x560a7e
mov dword [esp + 0x10], edi
jmp 0x560a7e
mov dword [esp + 0x10], 0x23af
mov eax, dword [esi + 0x110]
lea edi, [esi + 0x98]
mov ecx, 0x1f56
lea ebx, [esp + 0x30]
mov dword [esp + 0x1c], eax
call fcn.005344c0
mov ecx, dword [esp + 0x1c]
mov esi, dword [eax]
push ecx
mov edx, 0x50003
call fcn.0054e0a0
test eax, eax
js 0x560aba
mov ecx, eax
mov eax, esi
call fcn.005393e0
mov ecx, 0x1f56
lea ebx, [esp + 0x34]
call fcn.005344c0
mov eax, dword [eax]
mov edx, dword [ebp + 8]
or dword [eax + 0x2c], 8
mov esi, dword [edx + 0x110]
mov ecx, 0x1f54
lea ebx, [esp + 0x38]
call fcn.005344c0
mov ebx, dword [eax]
push esi
mov edx, 0x50004
call fcn.0054e0a0
test eax, eax
js 0x560aff
mov ecx, eax
mov eax, ebx
call fcn.005393e0
mov ecx, 0x1f54
lea ebx, [esp + 0x3c]
call fcn.005344c0
mov eax, dword [eax]
or dword [eax + 0x2c], 8
mov ecx, 0x1f5f
lea ebx, [esp + 0x40]
call fcn.005344c0
mov eax, dword [eax]
mov esi, 0xd
or dword [eax + 0x2c], esi
mov ecx, 0x1f58
lea ebx, [esp + 0x44]
call fcn.005344c0
mov eax, dword [eax]
or dword [eax + 0x2c], esi
mov ecx, 0x1f53
lea ebx, [esp + 0x48]
call fcn.005344c0
mov ecx, dword [esp + 0x10]
test ecx, ecx
js 0x560b5b
mov eax, dword [eax]
call fcn.005393e0
mov ecx, 0x1f56
lea ebx, [esp + 0x4c]
call fcn.005344c0
mov ecx, dword [eax]
call fcn.00539c60
mov ecx, 0x1f5f
lea ebx, [esp + 0x50]
call fcn.005344c0
mov ebx, dword [eax]
call fcn.0053ab50
mov ecx, 0x1f54
lea ebx, [esp + 0x54]
call fcn.005344c0
mov ecx, dword [eax]
call fcn.00539c60
mov ecx, 0x1f58
lea ebx, [esp + 0x58]
call fcn.005344c0
mov ebx, dword [eax]
call fcn.0053ab50
mov ecx, 0x1f53
lea ebx, [esp + 0x5c]
call fcn.005344c0
mov ecx, dword [eax]
call fcn.00539c60
mov ecx, dword [esp + 0x70]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
xor edi, edi
xor ecx, ecx
cmp dword [esi + 0x110], 0x9fbf1
jne 0x560bec
lea ecx, [edi + 1]
mov eax, dword [0x5dd530]
cmp eax, edi
jne 0x560bf9
xor eax, eax
jmp 0x560c08
mov ecx, dword [ecx*4 + 0x5dd9a0]
push 0x50020
push ecx
call eax
cmp eax, 0xff1
setne dl
mov byte [esp + 0x1c], dl
mov eax, dword [esp + 0x1c]
push eax
push esi
call fcn.0055df90
call fcn.0040c84f
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x560c39
push 0x80004005
call fcn.004010a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x10], eax
mov dword [esp + 0x78], edi
cmp dword [esi + 0x20], edi
je 0x560d2d
lea edi, [esi + 0x98]
mov ecx, 0xe09
lea ebx, [esp + 0x18]
call fcn.005344c0
mov edi, dword [edi + 4]
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x560c7a
mov edi, dword [eax + 0x28]
jmp 0x560c7c
xor edi, edi
xor ebx, ebx
xor eax, eax
cmp edi, ebx
je 0x560c9f
cmp dword [edi + 0x20], ebx
je 0x560c9f
mov ecx, edi
call fcn.00402b20
cmp dword [edi + 0x20], ebx
je 0x560c9f
push eax
mov ecx, edi
call fcn.00402b40
jmp 0x560ca1
mov eax, ebx
mov edx, dword [esi + 0x110]
push edx
mov ecx, eax
lea edi, [esp + 0x24]
call fcn.00530ca0
add esp, 4
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x7c], 1
call fcn.004015b0
mov byte [esp + 0x78], bl
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x560ce9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x14]
call fcn.0052c750
add esp, 4
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x7c], 2
call fcn.004015b0
mov byte [esp + 0x78], bl
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x560d2d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x1c]
push ecx
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x30]
push eax
call fcn.00530b80
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x7c], 3
call fcn.004015b0
mov byte [esp + 0x78], 0
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x560d78
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esi + 0x4bc]
push ecx
lea ecx, [esp + 0x14]
call fcn.0052fa60
inc eax
add esp, 4
lea edi, [esi + 0x98]
mov ecx, 0xe3f
lea ebx, [esp + 0x1c]
mov dword [esi + 0x4c4], eax
call fcn.005344c0
mov edi, dword [edi + 4]
mov eax, dword [esp + 0x1c]
cmp eax, edi
je 0x560f68
mov edi, dword [eax + 0x28]
test edi, edi
je 0x560f68
mov eax, dword [edi + 0x20]
test eax, eax
je 0x560f68
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0x188
push eax
call esi
cmp dword [edi + 0x20], 0
mov dword [esp + 0x2c], eax
mov dword [esp + 0x1c], 0
je 0x560dfa
mov ecx, edi
call fcn.00402ae0
mov dword [esp + 0x1c], eax
xor ebx, ebx
cmp dword [esp + 0x1c], ebx
jle 0x560f68
lea edx, [esp + 0x18]
push edx
mov edx, dword [ebp + 8]
mov ecx, ebx
call fcn.0055e3d0
mov byte [esp + 0x78], 4
call fcn.0040c84f
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x560c2f
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov ecx, edi
mov byte [esp + 0x78], 5
call fcn.00401190
test eax, eax
je 0x560e5b
lea ecx, [esp + 0x14]
push ecx
push ebx
mov ecx, edi
call fcn.0041a8d2
mov ecx, dword [esp + 0x14]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
je 0x560c2f
mov eax, dword [esp + 0x18]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x560e98
test dx, dx
je 0x560e94
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x560e98
add eax, 4
add ecx, 4
test dx, dx
jne 0x560e72
xor eax, eax
jmp 0x560e9d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x560f13
mov ecx, edi
call fcn.00401190
test eax, eax
je 0x560ef4
mov edx, dword [edi + 0x20]
push 0
push 0
push 0xb
push edx
call esi
mov eax, dword [esp + 0x18]
mov ecx, dword [edi + 0x20]
push eax
push ebx
push 0x181
push ecx
call esi
mov eax, dword [edi + 0x20]
push 0
lea edx, [ebx + 1]
push edx
push 0x182
push eax
call esi
mov ecx, dword [edi + 0x20]
push 0
push 1
push 0xb
push ecx
call esi
mov edx, dword [edi + 0x20]
push 0
push 0
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
cmp dword [esp + 0x2c], ebx
jne 0x560f13
mov ecx, edi
call fcn.00401190
test eax, eax
je 0x560f13
mov eax, dword [edi + 0x20]
push 0
push ebx
push 0x186
push eax
call esi
mov byte [esp + 0x78], 4
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x560f38
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x78], 0
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x560f5d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc ebx
cmp ebx, dword [esp + 0x1c]
jl 0x560e06
mov dword [esp + 0x78], 0xffffffff
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
jmp 0x561157
xor eax, eax
cmp dword [esi + 0x110], 0x9fbf1
jne 0x560f8f
mov eax, 1
mov ecx, dword [0x5dd530]
test ecx, ecx
jne 0x560f9f
mov dword [esp + 0x1c], ecx
jmp 0x560fb2
mov edx, dword [eax*4 + 0x5dd9a0]
push 0x50005
push edx
call ecx
mov dword [esp + 0x1c], eax
lea edi, [esi + 0x98]
mov ecx, 0x1f55
lea ebx, [esp + 0x60]
call fcn.005344c0
cmp dword [esp + 0x1c], 0
jl 0x560fd8
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax]
call fcn.005393e0
mov ecx, 0x1f55
lea ebx, [esp + 0x64]
call fcn.005344c0
mov eax, dword [eax]
or dword [eax + 0x2c], 8
mov ecx, 0x1f55
lea ebx, [esp + 0x68]
call fcn.005344c0
mov ecx, dword [eax]
call fcn.00539c60
mov ecx, dword [esp + 0x70]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
sub eax, 0x1fa5
je 0x561026
sub eax, 0x1d
jne 0x5611a4
push 0x1f4b
mov ecx, esi
call fcn.0041a9d4
mov edi, eax
test edi, edi
je 0x561077
cmp dword [edi + 0x20], 0
je 0x561077
push 0x1f60
mov ecx, esi
xor ebx, ebx
call fcn.0041a9d4
test eax, eax
je 0x561063
mov eax, dword [eax + 0x20]
push ebx
push ebx
push 0x18b
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov ebx, eax
xor ecx, ecx
cmp ebx, 0xa
setl cl
mov esi, edi
mov ebx, ecx
call fcn.0052abc0
mov esi, dword [ebp + 8]
push 0x1f60
mov ecx, esi
call fcn.0041a9d4
test eax, eax
je 0x56109e
mov edx, dword [eax + 0x20]
push 0
push 0
push 0x188
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
jns 0x5610a2
xor eax, eax
jmp 0x5610cc
mov ecx, dword [esi + 0x484]
mov edx, dword [esi + 0x488]
sub edx, ecx
sar edx, 2
cmp edx, eax
ja 0x5610c1
push str.invalid_vector_T__subscript
call fcn.0051b845
mov eax, dword [ecx + eax*4]
test eax, eax
js 0x561185
cmp eax, dword [esi + 0x474]
jge 0x561185
push eax
lea ecx, [esi + 0x468]
call fcn.00416c3e
test eax, eax
jne 0x5610ed
call fcn.0040d0ac
mov eax, dword [eax + 8]
sub eax, 0x10
push eax
call fcn.00401a10
lea edi, [eax + 0x10]
add esp, 4
mov dword [esp + 0x2c], edi
push 0x1f4c
mov ecx, esi
mov dword [esp + 0x7c], 6
call fcn.0041a9d4
test eax, eax
je 0x56114c
cmp dword [eax + 0x20], 0
je 0x56114c
mov ecx, dword [edi - 0xc]
test ecx, ecx
jns 0x561132
push 0x80070057
call fcn.004010a0
cmp word [edi], 0x40
je 0x561143
test ecx, ecx
je 0x561143
mov ebx, 1
jmp 0x561145
xor ebx, ebx
mov esi, eax
call fcn.0052abc0
mov dword [esp + 0x78], 0xffffffff
lea eax, [edi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5611a4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x70]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x1f4c
mov ecx, esi
call fcn.0041a9d4
test eax, eax
je 0x5611a4
cmp dword [eax + 0x20], 0
je 0x5611a4
xor ebx, ebx
mov esi, eax
call fcn.0052abc0
mov ecx, dword [esp + 0x70]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4