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

Disassembly:
sub esp, 0x5bc
mov eax, dword [0x34c10e4]
xor eax, esp
mov dword [esp + 0x5b4], eax
and dword [esp + 0x2c], 0
lea eax, [esp + 0x1b0]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 4], eax
push ebx
mov ebx, dword [esp + 0x5cc]
mov dword [esp + 0x34], ebx
push ebp
push esi
mov esi, dword [esp + 0x5cc]
mov dword [esp + 0x40], esi
push edi
test ecx, ecx
je 0x1005503c
test esi, esi
js 0x1005503c
test ebx, ebx
js 0x1005503c
cmp dword [esp + 0x5e0], 0
jl 0x1005503c
mov ecx, dword [esp + 0x5e4]
xor eax, eax
inc eax
cmp dword [esp + 0x5dc], 0
cmovg eax, dword [esp + 0x5dc]
xor edx, edx
mov dword [esp + 0x50], eax
lea eax, [ecx - 1]
cmp eax, 0xe
cmova ecx, edx
call fcn.1004acac
mov dword [esp + 0x1c], eax
test eax, eax
js 0x10055041
call fcn.1004ad18
mov edi, eax
mov dword [esp + 0x10], edi
test edi, edi
js 0x10055041
push 0x40
lea eax, [esp + 0x7c]
mov ebp, edi
push 0
push eax
call fcn.10061dc0
add esp, 0xc
lea eax, [esp + 0xb8]
push pe_nt_image_headers32
push 0
push eax
call fcn.10061dc0
lea eax, [ebx - 1]
xor edx, edx
add eax, edi
add esp, 0xc
div edi
mov ebx, eax
imul ebx, edi
test esi, esi
je 0x10054d3c
lea eax, [esi - 1]
xor edx, edx
add eax, edi
div edi
mov esi, eax
imul esi, edi
jmp 0x10054d3e
xor esi, esi
lea eax, [esi + ebx]
mov dword [esp + 0x38], eax
add eax, edi
mov dword [esp + 0x54], eax
cmp eax, 0x400
jbe 0x10054d73
mov ecx, eax
call fcn.1005d730
mov dword [esp + 0x14], eax
test eax, eax
jne 0x10054d69
push 0xffffffffffffff83
pop eax
jmp 0x10055041
mov dword [esp + 0x3c], 1
jmp 0x10054d7a
lea eax, [esp + 0x1c0]
lea ecx, [eax + edi]
push edi
push dword [esp + 0x5ec]
mov dword [esp + 0x20], ecx
add ecx, ebx
push eax
mov dword [esp + 0x54], ecx
call fcn.10061dc0
add esp, 0xc
xor ecx, ecx
test ebx, ebx
jle 0x10054dc2
mov ebp, dword [esp + 0x5d4]
mov edi, dword [esp + 0x18]
xor edx, edx
mov eax, ecx
div dword [esp + 0x40]
mov al, byte [edx + ebp]
mov byte [ecx + edi], al
inc ecx
cmp ecx, ebx
jl 0x10054da9
mov edi, dword [esp + 0x10]
mov ebp, edi
xor ecx, ecx
test esi, esi
jle 0x10054deb
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
xor edx, edx
mov eax, ecx
div ebx
mov al, byte [edx + edi]
mov byte [ecx + ebp], al
inc ecx
cmp ecx, esi
jl 0x10054dd4
mov edi, dword [esp + 0x10]
mov ebp, edi
cmp dword [esp + 0x5e0], 0
jle 0x10054fec
push dword [esp + 0x50]
mov ebx, dword [esp + 0x18]
lea eax, [esp + 0x7c]
push dword [esp + 0x20]
mov ecx, dword [esp + 0x5ec]
mov edx, ebx
push eax
push dword [esp + 0x60]
call fcn.10054b74
mov edi, eax
add esp, 0x10
mov esi, edi
test edi, edi
js 0x10054ff0
xor ecx, ecx
test ebp, ebp
jle 0x10054e4b
mov edi, dword [esp + 0x1c]
xor edx, edx
mov eax, ecx
div edi
mov al, byte [esp + edx + 0x78]
mov byte [esp + ecx + 0xb8], al
inc ecx
cmp ecx, ebp
jl 0x10054e35
and dword [esp + 0x30], 0
lea edx, [esp + 0xb8]
and dword [esp + 0x24], 0
lea ecx, [esp + 0x24]
and dword [esp + 0x28], 0
and dword [esp + 0x2c], 0
push ebp
call fcn.1004e8af
pop ecx
test eax, eax
jne 0x1005500f
lea eax, [esp + 0x24]
xor edx, edx
push eax
inc edx
mov ecx, eax
call fcn.10051dc1
pop ecx
test eax, eax
jne 0x1005500b
mov edi, esi
test esi, esi
jne 0x10055012
xor ebx, ebx
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x38], ebx
jle 0x10054fac
mov edi, dword [esp + 0x18]
mov esi, edi
jmp 0x10054eb7
mov edi, dword [esp + 0x18]
push 0
push 0
push 0
push 0
lea edx, [esp + 0x68]
lea ecx, [esp + 0x78]
call fcn.1004e21b
add esp, 0x10
test eax, eax
jne 0x10055006
push ebp
mov edx, esi
lea ecx, [esp + 0x6c]
call fcn.1004e8af
pop ecx
test eax, eax
je 0x10054eec
push 0xffffffffffffff91
jmp 0x10054f05
lea eax, [esp + 0x58]
push eax
lea edx, [esp + 0x28]
lea ecx, [esp + 0x6c]
call fcn.1004f86f
pop ecx
test eax, eax
je 0x10054f08
push 0xffffffffffffff8d
pop edi
jmp 0x10054f84
lea ecx, [esp + 0x58]
call fcn.1004e42e
test al, 7
cdq
push 0
pop ebx
setne bl
and edx, 7
add eax, edx
sar eax, 3
add ebx, eax
jns 0x10054f2b
push 0xffffffffffffff8f
pop edi
jmp 0x10054f80
cmp ebx, ebp
jle 0x10054f55
lea edx, [esp + 0x138]
lea ecx, [esp + 0x58]
call fcn.1004e46e
mov edi, eax
lea eax, [esp + 0x139]
push ebp
push eax
push esi
call fcn.10061840
add esp, 0xc
jmp 0x10054f80
jge 0x10054f73
mov eax, ebp
sub eax, ebx
push eax
push 0
push esi
call fcn.10061dc0
mov edx, dword [esp + 0x1c]
add esp, 0xc
sub edx, ebx
add edx, edi
add edx, ebp
jmp 0x10054f75
mov edx, esi
lea ecx, [esp + 0x58]
call fcn.1004e46e
mov edi, eax
mov ebx, dword [esp + 0x10]
lea ecx, [esp + 0x68]
call fcn.1004e397
lea ecx, [esp + 0x58]
call fcn.1004e397
test edi, edi
js 0x10054fec
add ebx, ebp
add esi, ebp
mov dword [esp + 0x10], ebx
cmp ebx, dword [esp + 0x38]
jl 0x10054eb3
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0x78]
mov ebx, dword [esp + 0x5e0]
cmp ebx, esi
cmovl esi, ebx
push esi
push eax
push dword [esp + 0x28]
call fcn.10061840
add dword [esp + 0x2c], esi
lea ecx, [esp + 0x30]
add esp, 0xc
sub ebx, esi
mov dword [esp + 0x5e0], ebx
call fcn.1004e397
test ebx, ebx
jg 0x10054df9
mov ebx, dword [esp + 0x14]
cmp dword [esp + 0x3c], 0
je 0x10055002
test ebx, ebx
je 0x10055002
mov ecx, ebx
call fcn.1005d745
mov eax, edi
jmp 0x10055041
push 0xffffffffffffff92
pop edi
jmp 0x10054fec
push 0xffffffffffffff8d
jmp 0x10055011
push 0xffffffffffffff91
pop edi
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x10054ff0
xor eax, eax
cmp dword [esp + 0x24], eax
jle 0x10055031
and dword [ecx + eax*4], 0
inc eax
mov ecx, dword [esp + 0x30]
cmp eax, dword [esp + 0x24]
jl 0x10055022
test ecx, ecx
je 0x10054ff0
call fcn.1005d745
jmp 0x10054ff0
mov eax, 0xffffff53
mov ecx, dword [esp + 0x5c4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100601b3
add esp, 0x5bc
ret