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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff6c
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x90], ebx
mov dword [ebp - 4], ebx
mov esi, dword [ebp + 0xc]
lea edi, [ebp - 0x3c]
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 dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov esi, eax
xor eax, eax
push ebp
push 0x5a5f0e
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x21], 0
mov ebx, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov eax, esi
call fcn.005a6030
mov eax, dword [ebx + 0x34]
mov edx, 0x5a5f2c
call fcn.00407ed4
jne 0x5a57b9
mov byte [ebp - 0x22], 1
jmp 0x5a57bd
mov byte [ebp - 0x22], 0
mov eax, dword [ebx + 0x64]
call fcn.00489064
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov edx, dword [0x483fe4]
call fcn.00405968
test al, al
je 0x5a581a
mov eax, ebx
call fcn.00489064
mov eax, dword [eax + 0x38]
call fcn.00488a98
mov edi, eax
dec edi
test edi, edi
jl 0x5a581a
inc edi
mov dword [ebp - 0x14], 0
mov eax, ebx
call fcn.00489064
mov eax, dword [eax + 0x38]
mov edx, dword [ebp - 0x14]
call fcn.00488aa8
cmp ebx, eax
jne 0x5a5814
mov byte [ebp - 0x21], 1
jmp 0x5a581a
inc dword [ebp - 0x14]
dec edi
jne 0x5a57f8
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x40]
mov edx, dword [esi + 0x3c]
mov ecx, dword [eax]
call dword [ecx + 8]
inc dword [ebp - 0x30]
push esi
lea esi, [ebp - 0x3c]
lea edi, [ebp - 0x5c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop esi
lea eax, [ebp - 4]
mov ecx, dword [ebx + 0x34]
mov edx, 0x5a5f3c
call fcn.00407cd0
mov dl, 1
mov eax, dword [0x45d5e8]
call fcn.00466fb0
mov dword [ebp - 0x10], eax
mov byte [ebp - 0x1a], 0
mov byte [ebp - 0x19], 0
mov eax, dword [ebx + 0x64]
call fcn.00489064
cmp dword [eax + 0x48], 0
je 0x5a587c
cmp dword [ebx + 0x40], 0xffffffff
je 0x5a5878
mov byte [ebp - 0x19], 1
jmp 0x5a587c
mov byte [ebp - 0x19], 0
mov eax, ebx
call fcn.00488f04
mov edx, dword [eax]
call dword [edx + 0x30]
test eax, eax
jle 0x5a5890
mov byte [ebp - 0x1a], 1
cmp byte [ebp - 0x1a], 0
je 0x5a5930
mov eax, ebx
call fcn.00488f04
mov edx, dword [eax]
call dword [edx + 0x30]
mov edx, eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov eax, ebx
call fcn.00488f04
mov edx, dword [eax]
call dword [edx + 0x24]
mov edx, eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x24]
push eax
lea eax, [ebp - 0x7c]
push eax
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x30]
mov ecx, eax
xor edx, edx
xor eax, eax
call fcn.00439b80
lea eax, [ebp - 0x7c]
push eax
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x24]
push eax
lea eax, [ebp - 0x8c]
push eax
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x30]
mov ecx, eax
xor edx, edx
xor eax, eax
call fcn.00439b80
lea eax, [ebp - 0x8c]
push eax
mov eax, ebx
call fcn.00488f04
call fcn.004678d0
push eax
mov eax, dword [ebp - 0x10]
call fcn.004678d0
pop ecx
pop edx
call fcn.0046126c
cmp byte [ebp - 0x19], 0
je 0x5a5a16
mov eax, dword [ebx + 0x64]
call fcn.00489064
cmp dword [eax + 0x48], 0
je 0x5a5a16
mov eax, dword [ebx + 0x64]
call fcn.00489064
mov eax, dword [eax + 0x48]
call fcn.004b2d30
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 0x40]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + 0x64]
call fcn.00489064
mov eax, dword [eax + 0x48]
mov edx, dword [eax + 0x38]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov eax, dword [ebx + 0x64]
call fcn.00489064
mov eax, dword [eax + 0x48]
mov edx, dword [eax + 0x34]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov ecx, 2
mov edx, 2
mov eax, dword [ebp - 0xc]
mov edi, dword [eax]
call dword [edi + 0x18]
push eax
mov eax, dword [ebp - 0x10]
call fcn.004678d0
mov eax, dword [eax + 0x48]
pop edx
call fcn.00460a90
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x24]
push eax
lea eax, [ebp - 0x7c]
push eax
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x30]
mov ecx, eax
xor edx, edx
xor eax, eax
call fcn.00439b80
lea eax, [ebp - 0x7c]
push eax
mov eax, dword [ebp - 0x10]
call fcn.004678d0
pop edx
mov ecx, dword [eax]
call dword [ecx + 0x4c]
push 1
push 0x1fffffff
push 0x1fffffff
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 0x10]
call fcn.004678d0
call fcn.00461c98
push eax
mov eax, dword [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x28]
push eax
call sub.comctl32.dll_ImageList_DrawEx
mov eax, dword [ebp - 0x20]
call fcn.0048ad98
test al, al
je 0x5a5a2f
mov eax, dword [ebp - 0x34]
mov edi, eax
sub edi, dword [esi + 0x64]
mov dword [ebp - 0x18], eax
jmp 0x5a5a3a
mov eax, dword [ebp - 0x3c]
mov edi, eax
add eax, dword [esi + 0x64]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x30]
push eax
lea eax, [ebp - 0x4c]
push eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x38]
mov eax, edi
call fcn.00439b80
movzx eax, byte [ebp - 0x19]
or al, byte [ebp - 0x1a]
test al, al
je 0x5a5a77
push esi
lea esi, [ebp - 0x4c]
lea edi, [ebp - 0x6c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop esi
inc dword [ebp - 0x6c]
add dword [ebp - 0x68], 2
sub dword [ebp - 0x64], 3
sub dword [ebp - 0x60], 2
jmp 0x5a5ab7
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x4c]
sub edx, eax
sub edx, 0xa
sar edx, 1
jns 0x5a5a89
adc edx, 0
add edx, eax
mov dword [ebp - 0x6c], edx
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x48]
sub edx, eax
sub edx, 0xa
sar edx, 1
jns 0x5a5aa0
adc edx, 0
add edx, eax
mov dword [ebp - 0x68], edx
mov eax, dword [ebp - 0x6c]
add eax, 0xa
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x68]
add eax, 0xa
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x30]
cmp eax, dword [esi + 0x64]
jle 0x5a5af0
mov eax, dword [ebp - 0x20]
call fcn.0048ad98
test al, al
je 0x5a5ae2
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x30]
mov edx, dword [ebp - 0x64]
sub edx, eax
mov dword [ebp - 0x6c], edx
jmp 0x5a5af0
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x30]
add eax, dword [ebp - 0x6c]
mov dword [ebp - 0x64], eax
cmp byte [ebp - 0x21], 0
je 0x5a5af9
dec dword [ebp - 0x68]
mov eax, dword [ebp - 0x20]
call fcn.0048ad98
test al, al
je 0x5a5b41
mov edi, dword [ebp - 0x3c]
cmp byte [ebp - 0x21], 0
jne 0x5a5b16
mov eax, dword [esi + 0x64]
sub dword [ebp - 0x18], eax
jmp 0x5a5b1a
sub dword [ebp - 0x18], 4
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x30]
mov edx, dword [ebp - 0x34]
sub edx, eax
cmp edx, dword [ebp - 0x18]
jge 0x5a5b77
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x30]
mov edx, dword [ebp - 0x34]
sub edx, eax
sub edx, 8
mov dword [ebp - 0x18], edx
jmp 0x5a5b77
mov edi, dword [ebp - 0x3c]
cmp byte [ebp - 0x21], 0
jne 0x5a5b4f
add edi, dword [esi + 0x64]
jmp 0x5a5b52
add edi, 4
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x30]
add eax, dword [ebp - 0x3c]
cmp edi, eax
jge 0x5a5b71
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x30]
mov edi, eax
add edi, dword [ebp - 0x3c]
add edi, 4
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x30]
push eax
lea eax, [ebp - 0x5c]
push eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x38]
mov eax, edi
call fcn.00439b80
cmp byte [ebp - 0x21], 0
je 0x5a5bc1
movzx eax, byte [ebp - 0x19]
or al, byte [ebp - 0x1a]
test al, al
jne 0x5a5bab
push esi
lea esi, [ebp - 0x3c]
lea edi, [ebp - 0x5c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop esi
jmp 0x5a5bc1
mov eax, dword [ebp - 0x20]
call fcn.0048ad98
test al, al
je 0x5a5bbd
add dword [ebp - 0x54], 5
jmp 0x5a5bc1
sub dword [ebp - 0x5c], 5
cmp byte [ebp - 0x21], 0
je 0x5a5bf6
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x48]
mov edx, dword [esi + 0x8c]
call fcn.00460a90
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x44]
mov edx, dword [esi + 0x8c]
call fcn.004606bc
lea edx, [ebp - 0x3c]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0x4c]
jmp 0x5a5c5a
cmp byte [esi + 0xd8], 0
je 0x5a5c28
cmp byte [esi + 0xda], 0
je 0x5a5c28
add dword [ebp - 0x34], 2
mov eax, dword [ebp - 0x20]
call fcn.0048ad98
push eax
lea ecx, [ebp - 0x3c]
mov edx, dword [ebp - 0xc]
mov eax, esi
call fcn.005a72fc
sub dword [ebp - 0x34], 2
jmp 0x5a5c5a
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x48]
mov edx, dword [esi + 0x6c]
call fcn.00460a90
lea edx, [ebp - 0x3c]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0x4c]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x48]
mov edx, dword [esi + 0x70]
call fcn.00460a90
lea edx, [ebp - 0x4c]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0x4c]
cmp byte [ebx + 0x39], 0
je 0x5a5c73
mov eax, dword [esi + 0x3c]
mov edx, dword [eax + 0x18]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x40]
call fcn.0045ff3c
jmp 0x5a5c81
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x40]
mov edx, dword [esi + 0x5c]
call fcn.0045ff3c
cmp byte [ebp + 8], 0
je 0x5a5d3f
cmp byte [esi + 0x68], 0
je 0x5a5d3f
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x48]
xor edx, edx
call fcn.00460c10
cmp byte [ebp - 0x21], 0
je 0x5a5cc7
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [esi + 0x48]
push eax
mov eax, dword [ebp - 0x20]
call fcn.0048ad98
push eax
mov ecx, dword [ebp - 0xc]
mov edx, ebx
mov eax, esi
call fcn.005a6270
jmp 0x5a5d3f
cmp byte [ebx + 0x39], 0
je 0x5a5d3f
inc dword [ebp - 0x38]
dec dword [ebp - 0x30]
cmp byte [esi + 0xdb], 0
je 0x5a5cdf
dec dword [ebp - 0x34]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x48]
mov edx, dword [esi + 0x74]
call fcn.00460a90
lea edx, [ebp - 0x3c]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0x4c]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x44]
mov edx, dword [esi + 0x78]
call fcn.004606bc
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x48]
mov dl, 1
call fcn.00460c10
mov eax, dword [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x30]
push eax
push 0
push 0
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0xc]
mov edi, dword [eax]
call dword [edi + 0x7c]
dec dword [ebp - 0x38]
inc dword [ebp - 0x30]
cmp byte [esi + 0xdb], 0
je 0x5a5d3f
inc dword [ebp - 0x34]
movzx eax, byte [ebx + 0x39]
push eax
movzx eax, byte [ebp - 0x19]
or al, byte [ebp - 0x1a]
push eax
mov eax, dword [ebp - 0xc]
push eax
lea eax, [ebp - 0x6c]
push eax
movzx ecx, byte [ebp + 8]
mov edx, ebx
mov eax, esi
call fcn.005a66c0
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x4c]
push eax
movzx eax, byte [ebp + 8]
push eax
push 0
movzx eax, byte [ebx + 0x39]
push eax
movzx eax, byte [ebx + 0x38]
push eax
movzx eax, byte [ebp - 0x21]
push eax
mov eax, dword [ebp - 0x20]
call fcn.0048ad98
push eax
mov ecx, dword [ebp - 0xc]
mov edx, ebx
mov eax, esi
call fcn.005a6ed8
cmp byte [ebp - 0x22], 0
jne 0x5a5e08
mov eax, dword [ebp - 0x20]
call fcn.0048ad98
test al, al
je 0x5a5db1
mov edi, 0x20002
sub dword [ebp - 0x54], 3
jmp 0x5a5db7
xor edi, edi
add dword [ebp - 0x5c], 3
lea edx, [ebp - 0x90]
movzx eax, word [ebx + 0x60]
call fcn.00484cac
mov eax, dword [ebp - 0x90]
push eax
mov eax, dword [ebp - 0xc]
push eax
lea eax, [ebp - 0x5c]
push eax
movzx eax, byte [ebp + 8]
push eax
movzx eax, byte [ebx + 0x39]
push eax
movzx eax, byte [ebx + 0x3a]
push eax
movzx eax, byte [ebp - 0x21]
push eax
mov eax, dword [ebp - 0x20]
call fcn.0048ad98
push eax
lea eax, [esi + 0x3c]
push eax
push edi
mov ecx, dword [ebp - 4]
mov edx, ebx
mov eax, esi
call fcn.005a698c
jmp 0x5a5e98
mov eax, dword [ebp - 0x20]
call fcn.0048ad98
test al, al
je 0x5a5e22
mov edi, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x54]
sub eax, 7
mov dword [ebp - 0x18], eax
jmp 0x5a5e2e
mov edi, dword [ebp - 0x5c]
add edi, 7
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x44]
mov edx, dword [esi + 0x94]
call fcn.004606bc
mov eax, dword [ebp - 0x50]
sub eax, dword [ebp - 0x58]
mov dword [ebp - 0x94], eax
fild dword [ebp - 0x94]
fdiv dword [0x5a5f40]
call fcn.00404944
mov ecx, eax
add ecx, dword [ebp - 0x58]
mov edx, edi
mov eax, dword [ebp - 0xc]
mov edi, dword [eax]
call dword [edi + 0x5c]
mov eax, dword [ebp - 0x50]
sub eax, dword [ebp - 0x58]
mov dword [ebp - 0x94], eax
fild dword [ebp - 0x94]
fdiv dword [0x5a5f40]
call fcn.00404944
mov ecx, eax
add ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xc]
mov edi, dword [eax]
call dword [edi + 0x58]
mov eax, dword [ebp - 0x10]
call fcn.0040574c
test byte [esi + 0x1c], 0x10
jne 0x5a5ee4
cmp byte [esi + 0xdb], 0
je 0x5a5ee4
cmp byte [ebp - 0x21], 0
jne 0x5a5ee4
mov eax, dword [ebp - 0xc]
call fcn.00461c98
push eax
call sub.user32.dll_WindowFromDC
mov edi, eax
mov eax, dword [esi + 0x38]
call fcn.004a3a74
cmp edi, eax
je 0x5a5ee4
mov eax, dword [ebp - 0x20]
call fcn.0048ad98
mov ecx, eax
mov edx, edi
mov eax, esi
call fcn.005a7410
mov edx, ebx
mov eax, esi
call fcn.005a4b00
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5a5f15
lea eax, [ebp - 0x90]
call fcn.004077f4
lea eax, [ebp - 4]
call fcn.004077f4
ret