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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x1008fe90
push eax
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], esp
sub esp, 0x28
push ebx
push ebp
xor ebp, ebp
push esi
cmp ecx, ebp
push edi
je 0x10057c47
jmp 0x10057852
mov ecx, dword [esp + 0x54]
xor ebp, ebp
mov eax, dword [esp + 0x58]
cmp eax, ebp
je 0x10057c47
lea edx, [ecx + eax]
cmp edx, 2
je 0x10057a18
mov esi, dword [esp + 0x5c]
cmp ecx, eax
jg 0x1005787e
mov edx, dword [esi + 0x10]
cmp ecx, dword [edx + 0xc]
jle 0x10057a71
mov edx, dword [esi + 0x10]
cmp eax, dword [edx + 0xc]
jle 0x10057b48
cmp eax, ecx
jge 0x1005791d
mov eax, ecx
mov ebp, dword [esp + 0x48]
cdq
sub eax, edx
lea ecx, [esp + 0x14]
mov ebx, eax
sar ebx, 1
mov edi, ebx
shl edi, 4
add edi, ebp
push edi
call fcn.10052e40
mov dword [esp + 0x14], 0x10094550
mov dword [esp + 0x1c], 0x1009454c
mov dword [esp + 0x20], 0x10094548
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x50]
push 0
lea ecx, [esp + 0x18]
push eax
mov eax, dword [esp + 0x54]
push ecx
push edx
push eax
mov dword [esp + 0x54], 0
call fcn.1005d500
mov ecx, dword [esp + 0x2c]
add esp, 0x14
test ecx, ecx
mov esi, eax
mov dword [esp + 0x40], 0xffffffff
mov dword [esp + 0x14], 0x10094544
je 0x1005790d
call fcn.10052e70
mov ecx, dword [esp + 0x4c]
mov ebp, esi
sub ebp, ecx
sar ebp, 4
jmp 0x1005799d
cdq
sub eax, edx
mov edi, dword [esp + 0x4c]
mov ebp, eax
lea ecx, [esp + 0x24]
sar ebp, 1
mov esi, ebp
shl esi, 4
add esi, edi
push esi
call fcn.10052e40
mov dword [esp + 0x24], 0x10094550
mov dword [esp + 0x2c], 0x1009454c
mov dword [esp + 0x30], 0x10094548
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x48]
push 0
lea edx, [esp + 0x28]
push ecx
push edx
push edi
push eax
mov dword [esp + 0x54], 1
call fcn.1005d5a0
mov ecx, dword [esp + 0x3c]
add esp, 0x14
test ecx, ecx
mov edi, eax
mov dword [esp + 0x40], 0xffffffff
mov dword [esp + 0x24], 0x10094544
je 0x10057992
call fcn.10052e70
mov ecx, dword [esp + 0x48]
mov ebx, edi
sub ebx, ecx
sar ebx, 4
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x4c]
sub eax, ebx
push ecx
push ebp
push eax
push esi
push edx
push edi
mov dword [esp + 0x6c], eax
call fcn.1005b0e0
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
push ecx
push edx
push ebp
push ebx
mov dword [esp + 0x38], eax
push eax
mov eax, dword [esp + 0x74]
push edi
push eax
call fcn.10057820
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x44]
add esp, 0x34
sub edx, ebp
mov dword [esp + 0x54], eax
test eax, eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x48], ecx
jne 0x1005784c
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
mov edx, dword [esp + 0x48]
mov eax, dword [edx + 4]
cmp eax, ebp
jne 0x10057a27
xor ecx, ecx
jmp 0x10057a2a
mov ecx, dword [eax + 8]
call fcn.100789d0
mov ebx, dword [esp + 0x4c]
cdq
mov edi, eax
mov eax, dword [ebx + 4]
cmp eax, ebp
mov esi, edx
jne 0x10057a43
xor eax, eax
jmp 0x10057a46
mov eax, dword [eax + 8]
mov ecx, eax
call fcn.100789d0
cdq
cmp edx, esi
jg 0x10057c47
jl 0x10057a60
cmp eax, edi
jae 0x10057c47
mov eax, dword [esp + 0x48]
push ebp
push ebx
push eax
call fcn.1005d3f0
jmp 0x10057c44
mov ecx, esi
call fcn.10080280
mov ebx, dword [esp + 0x4c]
sub esp, 0x14
mov ecx, esp
mov dword [esp + 0x70], esp
push ebx
mov dword [ecx], ebp
mov dword [ecx + 4], ebp
mov dword [ecx + 8], ebp
mov dword [ecx + 0xc], ebp
mov edx, dword [eax + 0x10]
mov eax, dword [esp + 0x60]
mov dword [ecx + 0x10], edx
lea ecx, [esp + 0x3c]
push eax
push ecx
call fcn.1005af20
mov edi, dword [esp + 0x44]
add esp, 0x20
cmp edi, ebp
je 0x10057ad6
cmp edi, dword [esp + 0x2c]
je 0x10057acd
mov edx, dword [edi]
push ebp
mov ecx, edi
call dword [edx]
mov eax, dword [esp + 0x2c]
add edi, 0x10
cmp edi, eax
jne 0x10057ab7
mov edi, dword [esp + 0x24]
push edi
call fcn.10088e50
add esp, 4
mov esi, dword [esi + 0x10]
mov al, byte [esp + 0x60]
mov edi, dword [esp + 0x48]
mov byte [esp + 0x4c], al
mov ebp, dword [esi + 4]
mov esi, dword [esi]
cmp esi, ebp
je 0x10057b1e
cmp ebx, dword [esp + 0x50]
je 0x10057b1e
push esi
push ebx
lea ecx, [esp + 0x54]
call fcn.10055560
test al, al
je 0x10057b0a
mov eax, ebx
add ebx, 0x10
jmp 0x10057b0f
mov eax, esi
add esi, 0x10
push eax
mov ecx, edi
call fcn.1007bf70
add edi, 0x10
cmp esi, ebp
jne 0x10057aee
push edi
push ebp
push esi
call fcn.10052470
mov ecx, dword [esp + 0x5c]
push eax
push ecx
push ebx
call fcn.10052470
add esp, 0x18
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
mov ecx, esi
call fcn.10080280
mov ebx, dword [esp + 0x50]
sub esp, 0x14
mov ecx, esp
mov dword [esp + 0x70], esp
push ebx
mov dword [ecx], ebp
mov dword [ecx + 4], ebp
mov dword [ecx + 8], ebp
mov dword [ecx + 0xc], ebp
mov edx, dword [eax + 0x10]
mov ebp, dword [esp + 0x64]
lea eax, [esp + 0x3c]
push ebp
push eax
mov dword [ecx + 0x10], edx
call fcn.1005af20
mov edi, dword [esp + 0x44]
add esp, 0x20
test edi, edi
je 0x10057bae
cmp edi, dword [esp + 0x2c]
je 0x10057ba5
mov edx, dword [edi]
push 0
mov ecx, edi
call dword [edx]
mov eax, dword [esp + 0x2c]
add edi, 0x10
cmp edi, eax
jne 0x10057b8e
mov edi, dword [esp + 0x24]
push edi
call fcn.10088e50
add esp, 4
mov esi, dword [esi + 0x10]
mov cl, byte [esp + 0x60]
mov byte [esp + 0x60], cl
mov edi, ebp
mov eax, dword [esi]
mov esi, dword [esi + 4]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x48]
cmp eax, ebp
je 0x10057c0b
cmp dword [esp + 0x4c], esi
je 0x10057c38
sub edi, 0x10
sub esi, 0x10
push edi
push esi
lea ecx, [esp + 0x68]
call fcn.10055560
test al, al
je 0x10057bf7
sub ebx, 0x10
push edi
mov ecx, ebx
call fcn.1007bf70
add esi, 0x10
jmp 0x10057c05
sub ebx, 0x10
push esi
mov ecx, ebx
call fcn.1007bf70
add edi, 0x10
cmp dword [esp + 0x48], edi
jne 0x10057bcc
cmp dword [esp + 0x4c], esi
je 0x10057c47
sub ebx, esi
sub esi, 0x10
push esi
lea ecx, [ebx + esi]
call fcn.1007bf70
cmp esi, dword [esp + 0x4c]
jne 0x10057c13
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
mov edx, dword [esp + 0x48]
push ebx
push edi
push edx
call fcn.10053240
add esp, 0xc
mov ecx, dword [esp + 0x38]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x34
ret