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

Disassembly:
push 0xffffffffffffffff
push 0x494158
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x50
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov eax, dword [esi]
call dword [eax + 0x144]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x11c]
cmp eax, 2
jne 0x45bb88
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x144]
mov edi, dword [esi + 0x128]
mov ebx, dword [esi + 0x130]
mov ebp, eax
mov eax, dword [esi + 0x124]
push eax
mov ecx, ebp
mov dword [esp + 0x74], ebp
call fcn.0044a2e0
mov ecx, dword [esi + 0x12c]
mov dword [esp + 0x2c], eax
push ecx
mov ecx, ebp
call fcn.0044a2e0
mov edx, dword [esi + 0x114]
mov ecx, dword [esp + 0x70]
mov ebp, eax
mov eax, dword [esi + 0xf0]
push eax
mov dword [esi + 0x12c], eax
mov dword [esi + 0x130], edx
call fcn.0044a2e0
mov edx, dword [esi + 0x118]
mov ecx, dword [esi + 0x130]
sub edi, edx
mov edx, dword [esi + 0x19c]
imul edi, dword [esi + 0x144]
add edi, edx
push esi
mov dword [esp + 0x2c], edi
mov edi, dword [esi + 0x118]
sub ebx, edi
mov edi, dword [esi + 0x10c]
imul ebx, dword [esi + 0x144]
add ebx, edx
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x30]
sub ebx, edi
mov edi, dword [esi + 0x148]
imul ebx, edi
mov dword [esp + 0x30], ebx
mov ebx, dword [esi + 0x10c]
sub ebp, ebx
sub eax, ebx
inc ebp
imul ebp, edi
mov dword [esp + 0x38], ebp
mov ebp, dword [esi + 0x118]
sub ecx, ebp
imul ecx, dword [esi + 0x144]
add ecx, edx
inc eax
imul eax, edi
mov ebp, ecx
lea ecx, [esp + 0x3c]
mov ebx, eax
call fcn.00472452
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
mov eax, ebx
push 0x550009
sub eax, ecx
mov edx, esi
push eax
mov eax, dword [esp + 0x30]
mov edi, dword [sym.imp.GDI32.dll_PatBlt]
sub edx, eax
push edx
push ecx
push eax
mov eax, dword [esp + 0x50]
push eax
call edi
mov eax, dword [esp + 0x2c]
push 0x550009
sub ebx, eax
sub ebp, esi
push ebx
push ebp
mov ecx, dword [esp + 0x48]
push eax
push esi
push ecx
call edi
lea ecx, [esp + 0x38]
jmp 0x45bebd
mov edx, dword [esi + 0xd0]
mov eax, dword [esi + 0xf0]
mov ecx, dword [esi + 0x114]
mov dword [esi + 0x124], edx
mov edx, dword [esi + 0xd4]
mov dword [esi + 0x12c], eax
mov dword [esi + 0x128], edx
mov dword [esi + 0x130], ecx
mov eax, dword [esi + 0x124]
xor edi, edi
cmp eax, edi
je 0x45bc20
mov ecx, dword [esi + 0x12c]
cmp ecx, edi
je 0x45bc20
cmp eax, ecx
jne 0x45bbe0
mov ecx, dword [esi + 0x130]
mov eax, edx
cmp eax, ecx
jle 0x45bc20
jmp 0x45bbf0
mov eax, dword [eax]
cmp eax, edi
je 0x45bbf0
cmp eax, ecx
je 0x45bc20
mov eax, dword [eax]
cmp eax, edi
jne 0x45bbe6
mov ecx, dword [esi + 0x12c]
mov eax, dword [esi + 0xd0]
mov edx, dword [esi + 0x130]
mov dword [esi + 0x124], ecx
mov ecx, dword [esi + 0xd4]
mov dword [esi + 0x12c], eax
mov dword [esi + 0x128], edx
mov dword [esi + 0x130], ecx
cmp dword [esp + 0x70], edi
je 0x45bec2
mov edx, dword [esi + 0x1c]
push edx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x45bec2
mov eax, dword [esi]
mov ebx, dword [esi + 0xec]
mov ecx, esi
call dword [eax + 0x144]
mov edx, dword [esi + 0xec]
xor ebp, ebp
mov eax, edx
mov dword [esp + 0x20], edi
test eax, eax
mov dword [esp + 0x2c], edi
je 0x45bc9a
mov ecx, dword [eax + 0x1c]
test ch, 8
je 0x45bc77
mov edi, dword [eax + 0x18]
mov dword [esp + 0x20], eax
and edi, 0xffff
test ch, 0x10
je 0x45bc88
mov ecx, dword [eax + 0x18]
mov ebp, eax
shr ecx, 0x10
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x45bc94
test ebp, ebp
jne 0x45bcd9
mov eax, dword [eax]
test eax, eax
jne 0x45bc62
mov eax, edx
test eax, eax
je 0x45bcd9
mov ecx, dword [eax + 0x1c]
test ch, 8
je 0x45bcb5
mov edi, dword [eax + 0x18]
mov dword [esp + 0x20], eax
and edi, 0xffff
test ch, 0x10
je 0x45bcc6
mov ecx, dword [eax + 0x18]
mov ebp, eax
shr ecx, 0x10
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x45bcd2
test ebp, ebp
jne 0x45bcd9
mov eax, dword [eax + 4]
test eax, eax
jne 0x45bca0
mov eax, dword [esp + 0x20]
test eax, eax
je 0x45bec2
test ebp, ebp
je 0x45bec2
mov eax, dword [esi + 0x140]
push esi
cdq
idiv dword [esi + 0x148]
lea ecx, [esp + 0x50]
inc eax
mov dword [esp + 0x1c], eax
call fcn.00472452
mov ebp, dword [esi + 0xec]
xor ecx, ecx
cmp ebx, ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x10], ecx
je 0x45bd2d
mov eax, dword [esp + 0x20]
cmp eax, ebx
jne 0x45bd44
cmp edi, ecx
jg 0x45bd54
mov ebx, 1
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], ecx
cmp eax, ecx
jl 0x45be6c
jmp 0x45bd5a
mov eax, dword [eax]
cmp eax, ecx
je 0x45bd54
cmp eax, ebx
je 0x45bd2d
mov eax, dword [eax]
cmp eax, ecx
jne 0x45bd4a
xor ebx, ebx
jmp 0x45bd32
xor ecx, ecx
cmp ebp, ecx
je 0x45be4f
mov edi, dword [esp + 0x1c]
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov ecx, dword [edi + 0x44]
sub edx, ecx
mov dl, byte [edx + eax]
cmp dl, byte [edi + 0x48]
jne 0x45bd7b
sub eax, ecx
push eax
push ebp
mov ecx, edi
call fcn.0044aeb0
test ebx, ebx
jne 0x45bdbe
mov ecx, dword [ebp + 0x1c]
test ch, 8
jne 0x45bda8
mov eax, dword [esi + 0x148]
mov ecx, dword [esp + 0x70]
mov ebp, dword [ebp]
add ecx, eax
mov dword [esp + 0x70], ecx
jmp 0x45be57
mov edx, dword [ebp + 0x18]
mov ebx, 1
and edx, 0xffff
cmp eax, edx
jae 0x45bdc0
mov edx, eax
jmp 0x45bdc0
xor edx, edx
mov ecx, dword [ebp + 0x1c]
test ch, 0x10
jne 0x45bdce
sub eax, edx
mov edi, eax
jmp 0x45bde4
mov ecx, dword [esp + 0x2c]
cmp eax, ecx
jl 0x45bdd8
mov eax, ecx
sub eax, edx
mov dword [esp + 0x10], 1
mov edi, eax
mov eax, dword [esi + 0x118]
cmp edx, eax
jge 0x45bdf4
mov ecx, edx
sub ecx, eax
add edi, ecx
test eax, eax
je 0x45bdfa
sub edx, eax
test edi, edi
jge 0x45be00
xor edi, edi
test edx, edx
jge 0x45be06
xor edx, edx
mov eax, dword [esi + 0x144]
mov ecx, eax
imul eax, edx
imul ecx, edi
add eax, dword [esi + 0x19c]
test ecx, ecx
je 0x45be3c
mov edx, dword [esi + 0x148]
push 0x550009
push edx
mov edx, dword [esp + 0x78]
push ecx
push edx
push eax
mov eax, dword [esp + 0x64]
push eax
call dword [sym.imp.GDI32.dll_PatBlt]
mov ecx, dword [esi + 0x148]
mov eax, dword [esp + 0x70]
mov ebp, dword [ebp]
add eax, ecx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x45be6c
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jle 0x45bd58
mov eax, dword [esp + 0x20]
mov edx, 0xffff0000
mov ecx, 0xfffff7ff
mov edi, dword [eax + 0x1c]
mov ebx, dword [eax + 0x18]
and edi, ecx
and ebx, edx
mov esi, edi
mov dword [eax + 0x18], ebx
test esi, 0x1000
mov dword [eax + 0x1c], edi
jne 0x45be9c
mov eax, dword [eax]
test eax, eax
jne 0x45be7a
jmp 0x45beb1
mov edx, dword [eax + 0x18]
mov ecx, dword [eax + 0x1c]
and edx, 0xffff
and ch, 0xef
mov dword [eax + 0x18], edx
mov dword [eax + 0x1c], ecx
mov dword [esp + 0x68], 0xffffffff
lea ecx, [esp + 0x4c]
call fcn.004724c4
mov ecx, dword [esp + 0x60]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
mov dword fs:[0], ecx
add esp, 0x5c
ret 4