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

Disassembly:
jmp 0x5b2220
sub esp, 0x4c8
push edi
xor edi, edi
cmp dword [0x8f2d68], edi
mov dword [esp + 0x3c], edi
je 0x5b2a50
cmp dword [0x8f2700], 1
je 0x5b2a50
push ebx
mov ebx, dword [esp + 0x4d4]
cmp ebx, edi
push ebp
push esi
je 0x5b22dd
mov ebp, dword [0x90d9d0]
mov ecx, dword [0x90d9d8]
mov eax, dword [ebx]
sub ecx, ebp
imul eax, ecx
cdq
idiv dword [0x90d9ac]
mov esi, dword [0x90d9dc]
sub esi, dword [0x90d9d4]
mov edi, eax
mov eax, dword [ebx + 8]
imul eax, ecx
cdq
idiv dword [0x90d9ac]
add edi, ebp
mov dword [esp + 0x4c], edi
mov ecx, eax
mov eax, dword [ebx + 4]
imul eax, esi
cdq
idiv dword [0x90d9b0]
add ecx, ebp
mov dword [esp + 0x54], ecx
mov ebp, eax
mov eax, dword [ebx + 0xc]
imul eax, esi
cdq
idiv dword [0x90d9b0]
add ebp, dword [0x90d9d4]
mov dword [esp + 0x50], ebp
add eax, dword [0x90d9d4]
cmp edi, ecx
mov dword [esp + 0x58], eax
je 0x5b269d
cmp ebp, eax
je 0x5b269d
xor edi, edi
call fcn.0057f08c
test eax, eax
je 0x5b23d3
mov ecx, dword [0xb15f88]
mov edx, dword [0xb15f8c]
mov eax, dword [0xb15f84]
mov esi, dword [0xb160b4]
mov ebp, dword [0xb160b8]
mov dword [esp + 0x1c], ecx
movzx ecx, byte [0xb160d6]
mov dword [esp + 0x20], edx
movzx edx, byte [0xb160d5]
mov dword [esp + 0x5c], ecx
mov ecx, dword [0x90d9b0]
mov dword [esp + 0x18], eax
mov eax, dword [0xb15f90]
push ecx
mov dword [esp + 0x14], edx
mov edx, dword [0x90d9ac]
push edx
mov dword [esp + 0x2c], eax
movzx eax, byte [0xb160d4]
push edi
push edi
mov dword [esp + 0x24], eax
call fcn.0057c170
push edi
push edi
call fcn.0057b24d
mov al, 0xff
add esp, 0x18
cmp byte [0xb160d6], al
jne 0x5b2376
cmp byte [0xb160d5], al
jne 0x5b2376
cmp byte [0xb160d4], al
je 0x5b2397
cmp dword [0x90d9f0], edi
mov byte [0xb160d6], al
mov byte [0xb160d4], al
mov byte [0xb160d5], al
je 0x5b2397
call fcn.0059f000
mov dword [0x9beef8], eax
call fcn.0057e1af
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x1c]
push ecx
push edx
push eax
call fcn.0057c170
push ebp
push esi
call fcn.0057b24d
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x74]
push ecx
push edx
push eax
call fcn.0057abea
add esp, 0x24
mov ecx, dword [0x90d9ac]
cmp ecx, edi
mov dword [esp + 0x10], 0x280
je 0x5b23e9
mov dword [esp + 0x10], ecx
mov eax, dword [0x90d9b0]
cmp eax, edi
mov esi, 0x1e0
je 0x5b23f9
mov esi, eax
cmp dword [0x90d9bc], edi
mov dword [esp + 0x14], esi
je 0x5b242f
mov edx, dword [0x90d9c0]
mov dword [esp + 0x38], edx
mov edx, dword [0x90d9c4]
mov dword [esp + 0x3c], edx
mov edx, dword [0x90d9c8]
mov dword [esp + 0x40], edx
mov edx, dword [0x90d9cc]
mov dword [esp + 0x44], edx
jmp 0x5b243f
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], eax
cmp dword [0xb16110], edi
mov ebp, 0xf0
jne 0x5b2454
cmp dword [0x9b62a0], edi
je 0x5b247f
cmp ecx, 0x280
jne 0x5b247f
cmp eax, 0x1e0
jne 0x5b247f
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], 0x140
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], 1
call fcn.0057dc91
cmp eax, 1
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
jne 0x5b253b
cmp dword [0xb16110], edi
jne 0x5b24a5
cmp dword [0x9b62a0], edi
je 0x5b24de
cmp dword [0x90d9ac], 0x280
jne 0x5b24de
cmp dword [0x90d9b0], 0x1e0
jne 0x5b24de
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x14]
push ecx
call fcn.0057a04b
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], esi
jmp 0x5b2517
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x60]
push ecx
call fcn.0057b167
fstp st(0)
fild dword [esp + 0x18]
fmul qword [esp + 0x64]
fstp qword [esp]
call fcn.0057e119
fild dword [esp + 0x1c]
mov dword [esp + 0x38], eax
fmul qword [esp + 0x20]
fstp qword [esp]
call fcn.0057e119
mov dword [esp + 0x3c], eax
add esp, 8
cmp dword [0x8fc694], edi
je 0x5b254e
mov eax, dword [0x8f26e8]
sub eax, dword [0x8f26e0]
mov edx, eax
sub edx, esi
mov dword [esp + 0x2c], edx
mov dword [esp + 0x34], eax
jmp 0x5b254e
mov eax, dword [0x90d9ac]
mov ecx, dword [0x90d9b0]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
cmp dword [0x90d9f0], edi
je 0x5b276d
call fcn.0057e664
call fcn.0057d07f
cmp dword [0x8fcd00], edi
je 0x5b25c5
cmp dword [0xb16108], edi
jne 0x5b2579
call fcn.0059f170
mov edx, dword [0x90d9ac]
mov eax, dword [0x90d9b0]
mov esi, dword [0xb15f6c]
lea ecx, [esp + 0x9c]
mov dword [esp + 0x20], edx
push ecx
lea edx, [esp + 0x1c]
push edx
mov dword [0xb15f6c], 0xfffffffe
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x2c], eax
call fcn.0057fb90
push edi
push edi
lea eax, [esp + 0xac]
push eax
jmp 0x5b27eb
cmp dword [esp + 0x48], edi
je 0x5b25f7
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], 0x280
mov dword [esp + 0x34], 0x1e0
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], 0x140
mov dword [esp + 0x44], ebp
mov ecx, dword [0x9bed3c]
cmp ecx, edi
je 0x5b2620
mov esi, dword [0x9bed38]
mov eax, dword [0x9bed28]
mov edx, dword [eax]
push edi
push edi
push esi
push edi
push ecx
push eax
mov eax, dword [edx + 0x88]
call eax
test eax, eax
jne 0x5b269d
cmp dword [0x9bed30], edi
je 0x5b2a43
push edi
call fcn.0057bd2e
add esp, 4
mov ebp, eax
mov dword [esp + 0x1c], edx
call fcn.0057dc91
test eax, eax
je 0x5b26cc
cmp ebx, edi
push edi
push edi
jne 0x5b26ab
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov dword [0x90d9d0], ecx
mov ecx, dword [esp + 0x4c]
mov dword [0x90d9d4], edx
mov edx, dword [0x9bed30]
mov dword [0x90d9d8], eax
mov dword [0x90d9dc], ecx
mov esi, dword [edx]
call fcn.0057e1a0
push eax
lea eax, [esp + 0x34]
push eax
push 0x90d9d0
mov ecx, dword [0x9bed30]
mov edx, dword [esi + 0xc]
push ecx
call edx
test eax, eax
je 0x5b2719
pop esi
pop ebp
pop ebx
or eax, 0xffffffff
pop edi
add esp, 0x4c8
ret
mov eax, dword [0x9bed30]
mov esi, dword [eax]
call fcn.0057e1a0
mov edx, dword [0x9bed30]
push eax
mov eax, dword [esi + 0xc]
push ebx
lea ecx, [esp + 0x5c]
push ecx
push edx
call eax
jmp 0x5b2699
cmp dword [esp + 0x48], edi
jne 0x5b26fa
cmp dword [0x90d9bc], edi
jne 0x5b26fa
mov ecx, dword [0x9bed30]
mov esi, dword [ecx]
push edi
push edi
call fcn.0057e1a0
mov edx, dword [0x9bed30]
push eax
mov eax, dword [esi + 0xc]
push edi
push edi
push edx
call eax
jmp 0x5b2699
mov ecx, dword [0x9bed30]
mov esi, dword [ecx]
push edi
push edi
call fcn.0057e1a0
push eax
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x48]
push eax
jmp 0x5b268d
push edi
call fcn.0057bd2e
mov ebx, eax
add esp, 4
mov esi, edx
sub ebx, ebp
sbb esi, dword [esp + 0x1c]
call fcn.0057ac71
test eax, eax
je 0x5b2a43
cmp dword [0xb16108], edi
jne 0x5b2a43
cmp esi, edi
jg 0x5b2a43
jl 0x5b275b
cmp ebx, 0x1f4
jae 0x5b2a43
call fcn.0059f170
pop esi
pop ebp
pop ebx
xor eax, eax
pop edi
add esp, 0x4c8
ret
push 0xa958f0
call fcn.0057db2e
add esp, 4
test eax, eax
je 0x5b2a43
cmp dword [0xb16108], edi
jne 0x5b278f
call fcn.0059f170
cmp dword [0x8fcd00], edi
je 0x5b280b
cmp dword [0xb16108], edi
jne 0x5b27a4
call fcn.0059f170
mov eax, dword [0x90d9ac]
mov ecx, dword [0x90d9b0]
mov esi, dword [0xb15f6c]
lea edx, [esp + 0x9c]
mov dword [esp + 0x20], eax
push edx
lea eax, [esp + 0x1c]
push eax
mov dword [0xb15f6c], 0xfffffffe
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x2c], ecx
call fcn.0057fb90
push edi
push edi
lea ecx, [esp + 0xac]
push ecx
call fcn.0057cdd2
add esp, 0x14
call fcn.0057e583
mov dword [0xb15f6c], esi
pop esi
pop ebp
pop ebx
xor eax, eax
pop edi
add esp, 0x4c8
ret
push 0x38
lea edx, [esp + 0x68]
push edi
push edx
call fcn.0057f8f2
mov eax, dword [0x90d9ac]
mov ecx, dword [0x90d9b0]
mov dword [esp + 0x74], eax
mov eax, dword [0xa95904]
mov dword [esp + 0x70], 0x28
mov word [esp + 0x7c], 1
neg ecx
mov dword [esp + 0x78], ecx
mov edx, dword [eax + 0x14]
mov cx, word [edx]
mov word [esp + 0x7e], cx
mov dword [esp + 0x80], 3
mov edx, dword [eax + 0x14]
mov ecx, dword [edx + 0xc]
mov dword [esp + 0x98], ecx
mov edx, dword [eax + 0x14]
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x9c], ecx
mov edx, dword [eax + 0x14]
mov eax, dword [edx + 0x14]
add esp, 0xc
mov dword [esp + 0x94], eax
call fcn.0057e1a0
push eax
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
cmp esi, edi
je 0x5b2a43
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
sub ecx, dword [esp + 0x28]
sub eax, dword [esp + 0x2c]
cmp dword [esp + 0x48], edi
je 0x5b28f6
mov edx, dword [0xa958fc]
push 0xcc0020
push edi
lea ecx, [esp + 0x6c]
push ecx
push edx
push ebp
push 0x140
push ebp
push edi
push 0x1e0
mov dword [0x90d9d0], edi
mov dword [0x90d9d4], edi
mov dword [0x90d9d8], 0x280
mov dword [0x90d9dc], 0x1e0
push 0x280
jmp 0x5b2a2d
cmp ebx, edi
je 0x5b2944
mov ebp, dword [esp + 0x54]
push 0xcc0020
push edi
mov eax, dword [ebx + 4]
mov ecx, dword [ebx]
lea edx, [esp + 0x6c]
push edx
mov edx, dword [0xa958fc]
push edx
mov edx, dword [esp + 0x68]
mov edi, edx
sub edi, dword [esp + 0x60]
push edi
mov edi, dword [esp + 0x60]
sub ebp, edi
push ebp
mov ebp, dword [0x90d9b0]
sub ebp, edx
mov edx, dword [ebx + 0xc]
push ebp
push edi
sub edx, eax
push edx
mov edx, dword [ebx + 8]
sub edx, ecx
push edx
push eax
push ecx
jmp 0x5b2a2f
cmp dword [0x90d9bc], edi
je 0x5b29b4
mov edx, dword [0x90d9c0]
mov dword [0x90d9d0], edx
mov edx, dword [0x90d9c4]
mov dword [0x90d9d4], edx
mov edx, dword [0x90d9c8]
push 0xcc0020
push edi
mov dword [0x90d9d8], edx
mov edx, dword [0x90d9cc]
lea ebp, [esp + 0x6c]
push ebp
mov ebp, dword [0xa958fc]
push ebp
mov dword [0x90d9dc], edx
mov edx, dword [0xc]
mov ebx, dword [ebx]
mov ebp, edx
sub ebp, dword [4]
push ebp
mov ebp, dword [8]
sub ebp, ebx
push ebp
mov ebp, dword [0x90d9b0]
sub ebp, edx
push ebp
push ebx
jmp 0x5b2a2b
mov edx, dword [0x90d9ac]
cmp edx, ecx
mov ebx, dword [0x90d9b0]
mov dword [0x90d9d0], edi
mov dword [0x90d9d4], edi
mov dword [0x90d9d8], ecx
mov dword [0x90d9dc], eax
jne 0x5b2a15
cmp ebx, eax
jne 0x5b2a15
push edi
lea edx, [esp + 0x68]
push edx
mov edx, dword [0xa958fc]
push edx
push eax
push edi
push edi
push edi
push eax
push ecx
push edi
push edi
push esi
call dword [sym.imp.GDI32.dll_SetDIBitsToDevice]
push esi
call fcn.0057e1a0
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
pop esi
pop ebp
pop ebx
xor eax, eax
pop edi
add esp, 0x4c8
ret
push 0xcc0020
push edi
lea ebp, [esp + 0x6c]
push ebp
mov ebp, dword [0xa958fc]
push ebp
push ebx
push edx
push edi
push edi
push eax
push ecx
push edi
push edi
push esi
call dword [sym.imp.GDI32.dll_StretchDIBits]
push esi
call fcn.0057e1a0
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
pop esi
pop ebp
pop ebx
xor eax, eax
pop edi
add esp, 0x4c8
ret
or eax, 0xffffffff
pop edi
add esp, 0x4c8
ret