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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
mov eax, dword [0x602c60]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, ecx
mov eax, dword [ebx]
push edi
mov edi, dword [ebp + 8]
call dword [eax + 0x190]
test al, al
jne 0x56ab8e
mov eax, dword [edi + 4]
cmp eax, 9
jle 0x56ab8e
cmp eax, 0x19
jge 0x56ab8e
mov ecx, dword [ebx + 0x48]
push edi
test ecx, ecx
je 0x56ab82
mov eax, dword [ecx]
call dword [eax + 0x1dc]
jmp 0x56b523
mov ecx, ebx
call fcn.00548e23
jmp 0x56b523
mov eax, dword [edi + 4]
cmp eax, 0x1b
jne 0x56aba2
mov byte [ebx + 0xba], 1
jmp 0x56b523
cmp eax, 0x1a
jne 0x56abb3
mov byte [ebx + 0xba], 0
jmp 0x56b523
mov ecx, dword [ebx + 0x310]
push esi
test ecx, ecx
je 0x56ae5b
mov eax, dword [ecx]
call dword [eax + 0x17c]
test al, al
je 0x56ae5b
mov ecx, dword [ebx + 0x310]
mov eax, dword [ecx]
call dword [eax + 0x188]
test al, al
je 0x56ae5b
mov ecx, dword [edi + 4]
cmp ecx, 3
jne 0x56ac5c
movzx eax, word [edi + 0x18]
sub eax, 0x21
je 0x56ac4f
dec eax
je 0x56ac42
dec eax
je 0x56ac35
dec eax
je 0x56ac28
dec eax
dec eax
je 0x56ac1b
dec eax
dec eax
jne 0x56af30
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x54]
jmp 0x56b522
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x50]
jmp 0x56b522
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x60]
jmp 0x56b522
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x64]
jmp 0x56b522
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x5c]
jmp 0x56b522
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x58]
jmp 0x56b522
lea esi, [ebx - 8]
mov eax, esi
neg eax
sbb eax, eax
and eax, ebx
cmp dword [edi + 8], eax
jne 0x56ad1a
cmp ecx, 0x1e
jne 0x56ad1a
cmp dword [edi + 0x1c], 0x18
jne 0x56ad1a
mov ecx, dword [ebx + 0x324]
test ecx, ecx
jle 0x56ad01
mov eax, dword [ebx - 8]
dec ecx
mov dword [ebx + 0x324], ecx
lea ecx, [ebp - 0xc]
push ecx
lea ecx, [ebx - 8]
call dword [eax + 0x3c]
mov eax, dword [ebx - 8]
lea ecx, [ebp - 0x1c]
push ecx
lea ecx, [ebx - 8]
call dword [eax + 0x40]
fild dword [ebx + 0x324]
push 2
push ecx
fidiv dword [ebx + 0x320]
push ecx
fstp qword [esp]
call fcn.004ad3b3
fimul dword [ebx + 0x31c]
add esp, 0xc
call fcn.004fdee0
test eax, eax
jle 0x56ace0
cmp dword [ebp - 8], 0
jne 0x56acea
test eax, eax
jns 0x56ad01
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 0x18]
je 0x56ad01
sub dword [ebp - 8], eax
push dword [ebp - 8]
mov eax, dword [ebx - 8]
push dword [ebp - 0xc]
lea ecx, [ebx - 8]
call dword [eax + 0x44]
jmp 0x56b522
xor eax, eax
mov dword [ebx + 0x31c], eax
mov dword [ebx + 0x320], eax
mov dword [ebx + 0x324], eax
jmp 0x56adeb
cmp ecx, 0x18
jne 0x56af30
lea ecx, [ebx - 8]
mov eax, dword [ecx]
mov dword [ebp - 0x3c], ecx
call dword [eax + 0xcc]
test al, al
jne 0x56ad55
movzx eax, word [edi + 0x1c]
sub eax, 0
je 0x56ad4d
dec eax
jne 0x56af30
mov ecx, dword [ebp - 0x3c]
jmp 0x56af19
mov ecx, dword [ebp - 0x3c]
jmp 0x56af26
mov ecx, dword [ebx + 0x310]
call fcn.00540c40
mov ecx, dword [ebx + 0x310]
mov dword [ebp - 8], eax
call fcn.00540c96
mov ecx, dword [ebx + 0x310]
mov dword [ebp - 0x3c], eax
call fcn.00540d03
mov ecx, dword [ebx + 0x320]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x38], eax
xor eax, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jle 0x56adb6
fild dword [ebx + 0x324]
push 2
push ecx
push ecx
fidiv dword [ebp - 0x18]
fstp qword [esp]
call fcn.004ad3b3
fimul dword [ebx + 0x31c]
add esp, 0xc
call fcn.004fdee0
mov dword [ebx + 0x31c], eax
movzx ecx, word [edi + 0x1c]
xor edx, edx
sub ecx, edx
je 0x56ade6
dec ecx
jne 0x56ae14
mov ecx, dword [ebp - 8]
cmp dword [ebp - 0x3c], ecx
je 0x56adeb
cmp eax, edx
jle 0x56addb
mov dword [ebx + 0x31c], edx
mov eax, dword [ebp - 0x38]
sub dword [ebx + 0x31c], eax
jmp 0x56ae14
cmp dword [ebp - 0x3c], edx
jne 0x56ae01
mov ecx, dword [ebx + 0x44]
neg esi
sbb esi, esi
and esi, ebx
push 0x18
push esi
call fcn.0052c8d4
jmp 0x56b522
cmp eax, edx
jge 0x56ae0b
mov dword [ebx + 0x31c], edx
mov eax, dword [ebp - 0x38]
add dword [ebx + 0x31c], eax
push dword [ebx + 0x31c]
call fcn.00504a62
mov dword [ebp - 8], eax
fild dword [ebp - 8]
push ecx
fstp qword [esp]
call fcn.00504aa4
pop ecx
fadd st(0), st(0)
pop ecx
call fcn.004fdee0
mov ecx, dword [ebx + 0x44]
neg esi
push 0x1e
sbb esi, esi
and esi, ebx
push 0x18
push esi
mov dword [ebx + 0x320], eax
mov dword [ebx + 0x324], eax
call fcn.0052c7ea
jmp 0x56b522
mov ecx, dword [ebx + 0x314]
test ecx, ecx
je 0x56af30
mov eax, dword [ecx]
call dword [eax + 0x17c]
test al, al
je 0x56af30
mov ecx, dword [ebx + 0x314]
mov eax, dword [ecx]
call dword [eax + 0x188]
test al, al
je 0x56af30
mov eax, dword [edi + 4]
cmp eax, 3
jne 0x56af05
movzx eax, word [edi + 0x18]
sub eax, 0x21
je 0x56aef8
dec eax
je 0x56aeeb
dec eax
je 0x56aedb
dec eax
je 0x56aecb
dec eax
dec eax
je 0x56aebe
dec eax
dec eax
jne 0x56af30
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x74]
jmp 0x56b522
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x70]
jmp 0x56b522
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x80]
jmp 0x56b522
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x84]
jmp 0x56b522
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x7c]
jmp 0x56b522
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x78]
jmp 0x56b522
cmp eax, 0x18
jne 0x56af30
movzx eax, word [edi + 0x1c]
sub eax, 0
je 0x56af23
dec eax
jne 0x56af30
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x6c]
jmp 0x56b522
lea ecx, [ebx - 8]
mov eax, dword [ecx]
call dword [eax + 0x68]
jmp 0x56b522
cmp dword [ebx + 0x32c], 0
jne 0x56af46
cmp dword [ebx + 0x330], 0
je 0x56b51a
cmp dword [edi + 4], 0xe
mov esi, dword [sym.imp.USER32.dll_PtInRect]
jne 0x56b008
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x188]
test al, al
je 0x56b008
push 0
lea eax, [ebp - 0x14]
lea ecx, [ebx - 8]
push eax
call fcn.0056744a
push dword [edi + 0x14]
lea eax, [ebp - 0x14]
push dword [edi + 0x10]
push eax
call esi
test eax, eax
je 0x56af8f
mov byte [ebx + 0x329], 1
jmp 0x56afb4
push 0
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebx - 8]
call fcn.0056752b
push dword [edi + 0x14]
lea eax, [ebp - 0x24]
push dword [edi + 0x10]
push eax
call esi
test eax, eax
je 0x56b008
mov byte [ebx + 0x329], 0
or dword [ebx + 0x334], 0x40
cmp byte [ebx + 0x328], 0
mov eax, edi
mov ecx, dword [eax + 0x10]
mov dword [ebx + 0x338], ecx
mov eax, dword [eax + 0x14]
lea esi, [ebx + 0x58]
lea edi, [ebx + 0x340]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x33c], eax
movsd dword es:[edi], dword [esi]
jne 0x56b522
mov ecx, dword [ebx + 0x44]
test ecx, ecx
je 0x56b522
lea eax, [ebx - 8]
neg eax
sbb eax, eax
and eax, ebx
push eax
call fcn.0052cb13
jmp 0x56b522
mov edx, dword [edi + 4]
cmp edx, 0xf
jne 0x56b05c
mov eax, dword [ebx + 0x334]
test al, 0x40
je 0x56b05c
lea esi, [ebx + 0x340]
lea edi, [ebx + 0x58]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
and eax, 0xffffffbf
cmp byte [ebx + 0x328], 0
mov dword [ebx + 0x334], eax
movsd dword es:[edi], dword [esi]
jne 0x56b45c
mov ecx, dword [ebx + 0x44]
test ecx, ecx
je 0x56b45c
lea eax, [ebx - 8]
neg eax
sbb eax, eax
and eax, ebx
push eax
call fcn.0052cb3e
jmp 0x56b45c
cmp edx, 0xa
jne 0x56b4ae
test byte [ebx + 0x334], 0x40
je 0x56b4ae
mov eax, edi
mov ecx, dword [eax + 0x10]
mov esi, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
sub ecx, dword [ebx + 0x338]
sub edx, dword [ebx + 0x33c]
cmp byte [ebx + 0x329], 0
mov dword [ebx + 0x338], esi
mov esi, dword [eax + 0x14]
mov dword [ebx + 0x33c], esi
lea esi, [ebx + 0x340]
lea edi, [ebp - 0x14]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
je 0x56b299
mov edx, dword [ebx + 0x32c]
test edx, edx
jle 0x56b179
test ecx, ecx
jle 0x56b0d7
mov esi, dword [ebx + 0x348]
sub esi, edx
cmp dword [eax + 0x10], esi
jl 0x56b522
test ecx, ecx
jns 0x56b0e8
mov eax, dword [eax + 0x10]
cmp eax, dword [ebx + 0x348]
jg 0x56b522
mov esi, dword [ebp - 0xc]
mov eax, dword [ebx]
add esi, ecx
mov ecx, ebx
mov dword [ebp - 0xc], esi
call dword [eax + 0x104]
mov edi, dword [ebp - 0x14]
mov ecx, esi
sub ecx, edi
cmp ecx, eax
jg 0x56b133
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x104]
mov ecx, dword [ebx + 0x348]
sub ecx, dword [ebx + 0x340]
cmp ecx, eax
jle 0x56b522
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x104]
lea esi, [edi + eax]
mov dword [ebp - 0xc], esi
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x10c]
sub esi, edi
cmp esi, eax
jl 0x56b22c
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x10c]
mov ecx, dword [ebx + 0x348]
sub ecx, dword [ebx + 0x340]
cmp ecx, eax
jge 0x56b522
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x10c]
add eax, edi
mov dword [ebp - 0xc], eax
jmp 0x56b22c
test ecx, ecx
jle 0x56b18e
mov esi, dword [eax + 0x10]
cmp esi, dword [ebx + 0x340]
jl 0x56b522
test ecx, ecx
jns 0x56b1a1
mov esi, dword [ebx + 0x340]
sub esi, edx
cmp dword [eax + 0x10], esi
jg 0x56b522
mov esi, dword [ebp - 0x14]
mov eax, dword [ebx]
add esi, ecx
mov ecx, ebx
mov dword [ebp - 0x14], esi
call dword [eax + 0x104]
mov edi, dword [ebp - 0xc]
mov ecx, edi
sub ecx, esi
cmp ecx, eax
jg 0x56b1ed
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x104]
mov ecx, dword [ebx + 0x348]
sub ecx, dword [ebx + 0x340]
cmp ecx, eax
jle 0x56b522
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x104]
mov esi, edi
sub esi, eax
mov dword [ebp - 0x14], esi
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x10c]
mov ecx, edi
sub ecx, esi
cmp ecx, eax
jl 0x56b22c
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x10c]
mov ecx, dword [ebx + 0x348]
sub ecx, dword [ebx + 0x340]
cmp ecx, eax
jge 0x56b522
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x10c]
sub edi, eax
mov dword [ebp - 0x14], edi
push 1
lea eax, [ebp - 0x34]
lea ecx, [ebx - 8]
push eax
call fcn.0056744a
push eax
lea ecx, [ebp - 0x24]
call fcn.0052a9e0
lea esi, [ebp - 0x14]
lea edi, [ebx + 0x340]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0x348]
sub eax, dword [ebx + 0x340]
cmp byte [ebx + 0x328], 0
mov dword [ebx + 0x80], eax
jne 0x56b452
push 1
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebx - 8]
call fcn.0056744a
push eax
lea ecx, [ebp - 0x24]
call fcn.0052aa54
push 0
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebx - 8]
call fcn.0056744a
jmp 0x56b48d
mov ecx, dword [ebx + 0x330]
test ecx, ecx
jle 0x56b360
test edx, edx
jle 0x56b2be
mov esi, dword [ebx + 0x34c]
add esi, ecx
cmp dword [eax + 0x14], esi
jl 0x56b522
test edx, edx
jns 0x56b2cf
mov eax, dword [eax + 0x14]
cmp eax, dword [ebx + 0x34c]
jg 0x56b522
mov esi, dword [ebp - 8]
mov eax, dword [ebx]
add esi, edx
mov ecx, ebx
mov dword [ebp - 8], esi
call dword [eax + 0x114]
mov edi, dword [ebp - 0x10]
mov ecx, esi
sub ecx, edi
cmp ecx, eax
jg 0x56b31a
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x114]
mov ecx, dword [ebx + 0x34c]
sub ecx, dword [ebx + 0x344]
cmp ecx, eax
jle 0x56b522
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x114]
lea esi, [edi + eax]
mov dword [ebp - 8], esi
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x11c]
sub esi, edi
cmp esi, eax
jl 0x56b413
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x11c]
mov ecx, dword [ebx + 0x34c]
sub ecx, dword [ebx + 0x344]
cmp ecx, eax
jge 0x56b522
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x11c]
add eax, edi
mov dword [ebp - 8], eax
jmp 0x56b413
test edx, edx
jle 0x56b375
mov esi, dword [eax + 0x14]
cmp esi, dword [ebx + 0x344]
jl 0x56b522
test edx, edx
jns 0x56b388
mov esi, dword [ebx + 0x344]
add esi, ecx
cmp dword [eax + 0x14], esi
jg 0x56b522
mov esi, dword [ebp - 0x10]
mov eax, dword [ebx]
add esi, edx
mov ecx, ebx
mov dword [ebp - 0x10], esi
call dword [eax + 0x114]
mov edi, dword [ebp - 8]
mov ecx, edi
sub ecx, esi
cmp ecx, eax
jg 0x56b3d4
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x114]
mov ecx, dword [ebx + 0x34c]
sub ecx, dword [ebx + 0x344]
cmp ecx, eax
jle 0x56b522
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x114]
mov esi, edi
sub esi, eax
mov dword [ebp - 0x10], esi
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x11c]
mov ecx, edi
sub ecx, esi
cmp ecx, eax
jl 0x56b413
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x11c]
mov ecx, dword [ebx + 0x34c]
sub ecx, dword [ebx + 0x344]
cmp ecx, eax
jge 0x56b522
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x11c]
sub edi, eax
mov dword [ebp - 0x10], edi
push 1
lea eax, [ebp - 0x34]
lea ecx, [ebx - 8]
push eax
call fcn.0056752b
push eax
lea ecx, [ebp - 0x24]
call fcn.0052a9e0
lea esi, [ebp - 0x14]
lea edi, [ebx + 0x340]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0x34c]
sub eax, dword [ebx + 0x344]
cmp byte [ebx + 0x328], 0
mov dword [ebx + 0x84], eax
je 0x56b468
lea edi, [ebx + 0x58]
lea esi, [ebp - 0x14]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, ebx
call fcn.00535693
jmp 0x56b522
push 1
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebx - 8]
call fcn.0056752b
push eax
lea ecx, [ebp - 0x24]
call fcn.0052aa54
push 0
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebx - 8]
call fcn.0056752b
push eax
lea ecx, [ebp - 0x24]
call fcn.0052aa54
mov ebx, dword [ebx + 0x44]
test ebx, ebx
je 0x56b522
lea eax, [ebp - 0x24]
push eax
mov ecx, ebx
call fcn.0052c75f
jmp 0x56b522
cmp edx, 0x1d
jne 0x56b51a
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x188]
test al, al
je 0x56b51a
push 0
lea eax, [ebp - 0x14]
lea ecx, [ebx - 8]
push eax
call fcn.0056744a
push dword [edi + 0x14]
lea eax, [ebp - 0x14]
push dword [edi + 0x10]
push eax
call esi
test eax, eax
je 0x56b4e6
push 0x7f84
jmp 0x56b509
push 0
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebx - 8]
call fcn.0056752b
push dword [edi + 0x14]
lea eax, [ebp - 0x24]
push dword [edi + 0x10]
push eax
call esi
test eax, eax
je 0x56b51a
push 0x7f85
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x56b522
push edi
mov ecx, ebx
call fcn.00548e23
pop esi
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop ebx
call fcn.004fb958
leave
ret 4