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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x84
mov edx, dword [0x652e04]
cmp word [edx + 0x22cc42], 0
push ebx
push esi
push edi
mov ebx, ecx
jne 0x45b92f
xor esi, esi
jmp 0x45b8c0
mov edx, dword [0x652e04]
jmp 0x45b8c0
mov ecx, dword [edx + 0x22cc44]
mov eax, dword [esi + edx + 0x22d1f9]
mov edi, dword [edx + 0x22cc48]
add eax, ecx
mov ecx, dword [esi + edx + 0x22d1fd]
add ecx, edi
lea edx, [eax + 0x20]
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0xc]
lea edi, [ecx + 0x20]
mov dword [esp + 0x34], ecx
mov ecx, dword [ebp + 8]
push eax
mov dword [esp + 0x3c], edx
push ecx
lea edx, [esp + 0x38]
push edx
mov dword [esp + 0x48], edi
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x45b927
lea ecx, [ebx + 0x78]
call fcn.0041b660
test ax, ax
je 0x45b927
mov ecx, dword [0x652e04]
call fcn.00453f80
test eax, eax
jne 0x45b93a
add esi, 8
cmp esi, 0x70
jl 0x45b8b5
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea eax, [esp + 0x30]
lea esi, [ebx + 0x78]
push eax
mov ecx, esi
call fcn.0041b730
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, ecx
imul eax, eax, 7
mov dword [esp + 0x20], ecx
movzx ecx, byte [ebx + 0x74]
add eax, edx
lea edi, [eax + eax*2]
add ecx, edi
imul ecx, ecx, 0x4f
xor eax, eax
mov ax, word [ecx + ebx + 0xec]
test ax, ax
mov dword [esp + 0x24], edx
mov dword [esp + 0x10], edi
je 0x45bde7
push eax
mov ecx, esi
call fcn.0041b6e0
movzx edx, byte [ebx + 0x74]
add edx, edi
imul edx, edx, 0x4f
movzx eax, word [edx + ebx + 0xec]
mov ecx, dword [eax*4 + 0xe5a580]
mov dl, byte [ecx + 0xe4]
mov ecx, dword [0x652e04]
mov byte [esp + 0x18], dl
mov eax, dword [esp + 0x18]
push eax
add ecx, 0x22cc24
call fcn.0049f400
cmp al, 0xe
mov byte [esp + 0xf], al
je 0x45bdb4
movzx ecx, byte [ebx + 0x74]
add ecx, edi
imul ecx, ecx, 0x4f
lea esi, [ecx + ebx + 0xec]
sub esp, 0x50
mov edi, esp
mov ecx, 0x13
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov ecx, ebx
movsb byte es:[edi], byte [esi]
call fcn.0045a880
test eax, eax
je 0x45bdda
movzx eax, byte [esp + 0xf]
mov ecx, dword [0x652e04]
push eax
lea edx, [esp + 0x45]
push edx
add ecx, 0x22cc24
mov dword [esp + 0x24], eax
xor edi, edi
call fcn.0041e940
mov esi, dword [esp + 0x10]
xor ecx, ecx
cmp word [eax], di
movzx eax, byte [ebx + 0x74]
jne 0x45bb0a
add eax, esi
imul eax, eax, 0x4f
mov cx, word [eax + ebx + 0xec]
push ecx
mov ecx, ebx
call fcn.0045a040
test eax, eax
je 0x45bdda
mov al, byte [ebx + 0x74]
movzx edx, al
add edx, esi
imul edx, edx, 0x4f
mov bx, word [edx + ebx + 0xec]
movzx ecx, bx
mov edx, dword [ecx*4 + 0xe5a580]
mov cl, byte [edx + 0xe4]
cmp cl, 0x23
mov edi, 1
mov byte [esp + 0xf], al
je 0x45ba8c
cmp cl, 0x27
je 0x45ba8c
cmp cl, 0x28
je 0x45ba8c
cmp cl, 0xa
jne 0x45bad3
mov esi, dword [0x652e08]
mov ecx, esi
call fcn.00401910
mov ecx, dword [eax + 0x23]
mov eax, dword [eax + 0x27]
add eax, 0x20
push eax
push ecx
mov ecx, dword [0x652e10]
call fcn.00402060
cmp al, 1
je 0x45bab5
xor edi, edi
mov ecx, esi
call fcn.00401910
mov cl, byte [eax + 0x2b]
test cl, cl
jne 0x45bdda
test edi, edi
je 0x45bdda
mov al, byte [esp + 0xf]
mov edx, dword [esp + 0x24]
xor ecx, ecx
push ecx
mov ecx, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x28]
push 0
push ebx
push edx
movzx dx, al
push ecx
mov ecx, dword [0x652e0c]
add ecx, 4
inc edx
push edx
call fcn.00427800
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
add eax, esi
imul eax, eax, 0x4f
mov cx, word [eax + ebx + 0xec]
push ecx
mov ecx, ebx
call fcn.0045a040
test eax, eax
je 0x45bdda
mov al, byte [ebx + 0x74]
movzx edx, al
add edx, esi
imul edx, edx, 0x4f
lea esi, [edx + ebx + 0xec]
mov byte [esp + 0xf], al
movzx eax, word [esi]
mov eax, dword [eax*4 + 0xe5a580]
mov cl, byte [eax + 0xe4]
cmp cl, 0x1a
mov dword [esp + 0x10], 1
mov dword [esp + 0x28], esi
jne 0x45bc11
mov ecx, dword [esp + 0x1c]
mov bl, byte [eax + 0x12c]
push ecx
mov ecx, dword [0x652e04]
lea edx, [esp + 0x45]
push edx
add ecx, 0x22cc24
call fcn.0041e940
movzx eax, word [eax]
mov eax, dword [eax*4 + 0xe5a580]
mov al, byte [eax + 0x12c]
cmp bl, al
jae 0x45bd5a
movzx ebx, bl
movzx eax, al
inc ebx
xor ecx, ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], ecx
lea esp, [esp]
cmp ebx, eax
jg 0x45bc00
mov edx, dword [0x652e04]
add ecx, ebx
imul ecx, ecx, 0x4f
sub eax, ebx
lea edx, [ecx + edx + 0x239624]
inc eax
lea esp, [esp]
mov ecx, 0x13
mov esi, edx
lea edi, [esp + 0x41]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
cmp word [esp + 0x41], 0
je 0x45bbf0
mov dword [esp + 0x10], 0
add edx, 0x4f
dec eax
jne 0x45bbd0
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
xor edi, edi
add ecx, 4
cmp ecx, 0x10
mov dword [esp + 0x18], ecx
jl 0x45bbb0
jmp 0x45bd4c
cmp cl, 0xf
jne 0x45bcfb
mov ecx, dword [esp + 0x1c]
mov al, byte [eax + 0x12c]
push ecx
mov ecx, dword [0x652e04]
lea edx, [esp + 0x45]
push edx
add ecx, 0x22cc24
mov byte [esp + 0x1f], al
call fcn.0041e940
movzx eax, word [eax]
mov eax, dword [eax*4 + 0xe5a580]
mov al, byte [eax + 0x12c]
mov cl, byte [esp + 0x17]
cmp cl, al
jae 0x45bd5a
movzx ecx, cl
movzx eax, al
inc ecx
cmp ecx, eax
jg 0x45bd5a
mov edx, ecx
imul edx, edx, 0x4f
sub eax, ecx
inc eax
lea ebx, [edx + ebx + 0x1d9]
mov edx, eax
jmp 0x45bc80
mov eax, ebx
mov ecx, 4
cmp word [eax - 0xed], di
je 0x45bc94
mov dword [esp + 0x10], edi
cmp word [eax], di
je 0x45bc9d
mov dword [esp + 0x10], edi
cmp word [eax + 0xed], di
je 0x45bcaa
mov dword [esp + 0x10], edi
cmp word [eax + 0x1da], di
je 0x45bcb7
mov dword [esp + 0x10], edi
cmp word [eax + 0x2c7], di
je 0x45bcc4
mov dword [esp + 0x10], edi
cmp word [eax + 0x3b4], di
je 0x45bcd1
mov dword [esp + 0x10], edi
cmp word [eax + 0x4a1], di
je 0x45bcde
mov dword [esp + 0x10], edi
cmp word [eax + 0x58e], di
je 0x45bceb
mov dword [esp + 0x10], edi
add eax, 0x67b
dec ecx
jne 0x45bc87
add ebx, 0x4f
dec edx
jne 0x45bc80
jmp 0x45bd4c
cmp cl, 0x23
je 0x45bd0f
cmp cl, 0x27
je 0x45bd0f
cmp cl, 0x28
je 0x45bd0f
cmp cl, 0xa
jne 0x45bd5a
mov esi, dword [0x652e08]
mov ecx, esi
call fcn.00401910
mov ecx, dword [eax + 0x23]
mov eax, dword [eax + 0x27]
add eax, 0x20
push eax
push ecx
mov ecx, dword [0x652e10]
call fcn.00402060
cmp al, 1
je 0x45bd3a
mov dword [esp + 0x10], edi
mov ecx, esi
call fcn.00401910
mov cl, byte [eax + 0x2b]
test cl, cl
jne 0x45bdda
cmp dword [esp + 0x10], edi
je 0x45bdda
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [0x652e04]
push ebx
lea eax, [esp + 0x45]
push eax
add ecx, 0x22cc24
call fcn.0041e940
xor ecx, ecx
mov cx, word [eax]
xor edx, edx
mov dx, word [esi]
xor eax, eax
push ecx
mov ecx, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x2c]
push ebx
push edi
push edx
movzx dx, byte [esp + 0x23]
push eax
push ecx
mov ecx, dword [0x652e0c]
add ecx, 4
inc edx
push edx
call fcn.00428ed0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [0xec0e0c]
mov ecx, dword [eax]
push 1
add ecx, 0x26d90
push 0xffffff
push ecx
mov ecx, dword [0x652e04]
add ecx, 0x2394
call fcn.0046f5e0
mov ecx, dword [0x65324c]
push 0x36
call fcn.0049d110
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 8