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

Disassembly:
push 0xffffffffffffffff
push 0x1015d958
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
mov eax, dword [0x101af0fc]
xor eax, esp
mov dword [esp + 0x48], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101af0fc]
xor eax, esp
push eax
lea eax, [esp + 0x60]
mov dword fs:[0], eax
mov ebx, dword [esp + 0x74]
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x7c]
xor ebp, ebp
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], ebp
test edx, edx
cmp dword [edi + 0x32b8], ebp
jne 0x100451a1
push ebx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x10045199
push 0xffffffffffffff9c
push edi
call fcn.10062c00
add esp, 8
mov al, al
xor eax, eax
jmp 0x10045390
cmp dword [edi + 0x32b8], ebp
je 0x100451ad
or ebx, 0x80000000
mov dword [esp + 0x20], ebx
mov edi, edi
test eax, 0x6a89
lea ecx, [esp + 0x1b]
push ecx
push esi
lea ecx, [esp + 0x30]
call fcn.100085d0
mov dword [esp + 0x68], ebp
test edx, edx
mov byte [esp + 0x40], 0x25
mov byte [esp + 0x41], 0x30
mov byte [esp + 0x42], 0x32
mov byte [esp + 0x43], 0x78
mov byte [esp + 0x44], 0
push eax
pop eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov ebp, eax
mov ebx, eax
sub eax, ecx
push eax
push 0x20
push ecx
call fcn.10103b50
add esp, 0xc
test eax, eax
jne 0x10045204
mov eax, ebx
jmp 0x10045223
cmp eax, ebx
je 0x10045223
lea ecx, [eax + 1]
cmp ecx, ebx
je 0x10045223
nop
mov dl, byte [ecx]
cmp dl, 0x20
je 0x1004521c
mov byte [eax], dl
add eax, 1
add ecx, 1
cmp ecx, ebx
jne 0x10045210
mov esi, eax
cmp esi, ebp
je 0x10045245
mov eax, dword [esp + 0x38]
sub eax, ebp
add eax, 1
je 0x1004523f
push eax
push ebp
push esi
call fcn.10103c00
add esp, 0xc
sub esi, ebp
add dword [esp + 0x38], esi
mov bh, bh
mov edx, dword [esp + 0x38]
sub edx, dword [esp + 0x3c]
test dl, 1
je 0x100452c5
mov al, 0x61
mov byte [esp + 0x49], al
mov byte [esp + 0x4b], al
mov al, 0xca
mov byte [esp + 0x48], 0x64
mov byte [esp + 0x4a], 0x74
mov byte [esp + 0x4c], 0xb3
mov byte [esp + 0x4d], 0xa4
mov byte [esp + 0x4e], 0xb6
mov byte [esp + 0x4f], 0xc8
mov byte [esp + 0x50], 0xb1
mov byte [esp + 0x51], 0xd8
mov byte [esp + 0x52], 0xd0
mov byte [esp + 0x53], 0xeb
mov byte [esp + 0x54], al
mov byte [esp + 0x55], 0xc7
mov byte [esp + 0x56], 0xc5
mov byte [esp + 0x57], 0xbc
mov byte [esp + 0x58], al
mov byte [esp + 0x59], 0xfd
mov byte [esp + 0x5a], 0
mov edi, edi
lea eax, [esp + 0x48]
push eax
push edi
call fcn.1004e580
add esp, 8
test ecx, ecx
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
test eax, 0x486
sub eax, ecx
shr eax, 1
push eax
call fcn.1010136f
add esp, 4
mov ebx, eax
mov edi, edi
xor esi, esi
mov dh, dh
test ebx, ebx
je 0x1004536e
mov ebp, dword [esp + 0x3c]
test eax, 0x3123
cmp byte [ebp], 0
je 0x10045331
mov edi, edi
test eax, 0x5ae5
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x44]
push edx
push ebp
call fcn.10104175
add esp, 0xc
mov ebx, ebx
mov al, byte [esp + 0x14]
mov byte [ebx + esi], al
add esi, 1
test eax, eax
add ebp, 2
test ch, ch
cmp byte [ebp], 0
jne 0x10045300
mov ecx, dword [esp + 0x24]
push esi
mov esi, dword [esp + 0x24]
push ebx
push ecx
call fcn.10043bf0
add esp, 0xc
test eax, eax
je 0x10045354
mov dword [esp + 0x1c], 1
mov esi, esi
jmp 0x10045361
push 0xffffffffffffff9b
push edi
call fcn.10062c00
add esp, 8
test ch, ch
push ebx
call fcn.10101432
add esp, 4
mov edi, edi
jmp 0x1004537b
push 0xffffffffffffff9b
push edi
call fcn.10062c00
add esp, 8
test ah, ah
mov dword [esp + 0x68], 0xffffffff
lea ecx, [esp + 0x28]
call fcn.10006e20
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.1010190d
add esp, 0x58
ret