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

Disassembly:
sub esp, 0xa0
mov eax, dword [0x102806c]
xor eax, esp
mov dword [esp + 0x9c], eax
push ebx
push ebp
mov ebp, dword [esp + 0xac]
push esi
push edi
xor esi, esi
or edi, 0xffffffff
push 0x1024f68
push esi
lea eax, [esp + 0x58]
push esi
mov ebx, edi
push eax
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x44], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x48], esi
mov dword [esp + 0x68], ebp
mov dword [esp + 0x3c], esi
call fcn.01012030
add esp, 0x10
cmp dword [esp + 0x50], esi
jne 0x10052a6
push 0x1024c5c
push 0x1024f68
call fcn.0101258d
add esp, 8
mov al, byte [ebp]
test al, al
je 0x1005628
cmp dword [esp + 0x2c], 6
jge 0x1005628
mov byte [esp + 0x17], 0
movsx ecx, al
push ecx
call fcn.01010ebf
add esp, 4
test eax, eax
jne 0x10052db
mov al, byte [ebp + 1]
add ebp, 1
test al, al
jne 0x10052c1
movsx edx, byte [ebp]
push edx
call fcn.01010cd1
add esp, 4
test eax, eax
je 0x100545e
xor eax, eax
mov dword [esp + 0x89], eax
mov dword [esp + 0x8d], eax
mov dword [esp + 0x91], eax
mov dword [esp + 0x95], eax
mov dword [esp + 0x99], eax
mov dword [esp + 0x9d], eax
mov dword [esp + 0xa1], eax
mov word [esp + 0xa5], ax
mov byte [esp + 0xa7], al
push 0x20
lea eax, [esp + 0x8c]
push eax
push str._31_A_Za_z_
push ebp
mov byte [esp + 0x98], 0
call fcn.01010114
lea eax, [esp + 0x98]
add esp, 0x10
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1005360
sub eax, edx
cmp dword [esp + 0x34], edi
mov dword [esp + 0x4c], eax
jne 0x10053bf
cmp eax, 3
mov edi, 0x1024f1c
ja 0x1005384
mov edi, 0x1024f00
xor esi, esi
mov ecx, dword [edi]
push ecx
lea edx, [esp + 0x8c]
push edx
call fcn.0100fea0
add esp, 8
test eax, eax
je 0x10053b2
add esi, 1
add edi, 4
cmp esi, 7
jl 0x1005386
mov dword [esp + 0x34], 0xffffffff
jmp 0x10053bf
cmp esi, 0xffffffff
mov dword [esp + 0x34], esi
jne 0x1005455
cmp dword [esp + 0x20], 0xffffffff
jne 0x1005405
mov edi, 0x1024f38
xor esi, esi
lea ecx, [ecx]
mov eax, dword [edi]
push eax
lea ecx, [esp + 0x8c]
push ecx
call fcn.0100fea0
add esp, 8
test eax, eax
je 0x10053fc
add esi, 1
add edi, 4
cmp esi, 0xc
jl 0x10053d0
mov dword [esp + 0x20], 0xffffffff
jmp 0x1005405
cmp esi, 0xffffffff
mov dword [esp + 0x20], esi
jne 0x1005455
cmp ebx, 0xffffffff
jne 0x1005433
mov edi, 0x1024da8
xor esi, esi
mov edx, dword [edi]
push edx
lea eax, [esp + 0x8c]
push eax
call fcn.0100fea0
add esp, 8
test eax, eax
je 0x100543e
add esi, 1
add edi, 8
cmp esi, 0x2b
jb 0x1005411
or eax, 0xffffffff
or edx, 0xffffffff
jmp 0x1005754
mov edi, dword [edi + 4]
mov ebx, edi
shl ebx, 4
sub ebx, edi
add ebx, ebx
add ebx, ebx
cmp ebx, 0xffffffff
mov dword [esp + 0x24], ebx
je 0x1005433
add ebp, dword [esp + 0x4c]
jmp 0x1005613
movsx ecx, byte [ebp]
push ecx
call fcn.01010d4b
add esp, 4
test eax, eax
je 0x1005618
cmp dword [esp + 0x28], edi
jne 0x10054a3
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x44]
push ecx
push str._02d:_02d:_02d
push ebp
call fcn.01010114
add esp, 0x14
cmp eax, 3
jne 0x10054a3
add ebp, 8
jmp 0x1005618
push 0xa
lea edx, [esp + 0x58]
push edx
push ebp
call fcn.010115a9
mov esi, dword [esp + 0x60]
add esp, 0xc
cmp ebx, edi
mov ecx, eax
jne 0x100551e
mov eax, esi
sub eax, ebp
cmp eax, 4
jne 0x100551e
cmp ecx, 0x514
jge 0x100551e
cmp dword [esp + 0x58], ebp
jae 0x100551e
mov bl, byte [ebp - 1]
cmp bl, 0x2b
je 0x10054e1
cmp bl, 0x2d
jne 0x100551e
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax + eax*4]
add edx, edx
add edx, edx
add edx, edx
mov eax, ecx
sub eax, edx
mov edx, eax
shl edx, 4
sub edx, eax
add edx, edx
add edx, edx
cmp bl, 0x2b
mov byte [esp + 0x17], 1
mov dword [esp + 0x24], edx
jne 0x100551e
neg edx
mov dword [esp + 0x24], edx
mov eax, esi
sub eax, ebp
or edx, 0xffffffff
cmp eax, 8
jne 0x100558e
cmp dword [esp + 0x18], edx
jne 0x100558e
cmp dword [esp + 0x20], edx
jne 0x100558e
cmp dword [esp + 0x1c], edx
jne 0x100558e
mov eax, 0x68db8bad
imul ecx
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x18], eax
imul eax, eax, 0x2710
mov edx, ecx
sub edx, eax
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
lea edx, [edx + eax - 1]
mov dword [esp + 0x20], edx
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x64
sub ecx, eax
mov dword [esp + 0x1c], ecx
jmp 0x100560d
cmp byte [esp + 0x17], 0
jne 0x100560d
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x10055c9
cmp dword [esp + 0x1c], edx
jne 0x1005672
lea eax, [ecx - 1]
cmp eax, 0x1e
ja 0x10055b8
mov dword [esp + 0x1c], ecx
mov byte [esp + 0x17], 1
cmp byte [esp + 0x17], 0
mov dword [esp + 0x38], 1
jne 0x100560d
jmp 0x10055d2
cmp eax, 1
jne 0x1005672
cmp dword [esp + 0x18], edx
jne 0x1005672
cmp ecx, 0x76c
mov dword [esp + 0x18], ecx
jge 0x10055ff
cmp ecx, 0x46
jle 0x10055f5
add ecx, 0x76c
jmp 0x10055fb
add ecx, 0x7d0
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x1c], edx
jne 0x100560d
mov dword [esp + 0x38], 0
mov ebx, dword [esp + 0x24]
mov ebp, esi
or edi, 0xffffffff
xor esi, esi
mov al, byte [ebp]
add dword [esp + 0x2c], 1
test al, al
jne 0x10052b1
mov eax, dword [esp + 0x28]
cmp eax, edi
jne 0x100563e
xor eax, eax
mov dword [esp + 0x3c], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x28], eax
cmp dword [esp + 0x1c], edi
je 0x1005750
cmp dword [esp + 0x20], edi
je 0x1005750
mov ecx, dword [esp + 0x18]
cmp ecx, edi
je 0x1005750
cmp ecx, 0x7f5
jle 0x1005679
mov eax, 0x7fffffff
xor edx, edx
jmp 0x1005754
mov eax, edx
jmp 0x1005754
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x70], eax
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x20]
xor ebp, ebp
lea eax, [esp + 0x64]
add edx, 0xfffff894
push eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], ebp
mov dword [esp + 0x84], ebp
mov dword [esp + 0x88], ebp
call fcn.010103e6
mov esi, eax
add esp, 4
cmp esi, 0xffffffff
mov edi, edx
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
je 0x100574c
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x8c]
push edx
call fcn.010103f3
add esp, 8
test eax, eax
jne 0x1005433
lea eax, [esp + 0x88]
push eax
call fcn.010103e6
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
mov ecx, ebx
sub ecx, 0xffffffff
add esp, 4
neg ecx
sbb ecx, ecx
and ecx, ebx
sub ecx, eax
add ecx, esi
cmp ecx, ebp
mov dword [esp + 0x5c], edx
jle 0x1005745
mov eax, ecx
cdq
add eax, esi
adc edx, edi
cmp edx, edi
jg 0x1005745
jl 0x1005433
cmp eax, esi
jb 0x1005433
mov eax, ecx
cdq
add esi, eax
adc edi, edx
mov eax, esi
jmp 0x1005752
mov eax, edi
mov edx, edi
mov ecx, dword [esp + 0xac]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0100fd07
add esp, 0xa0
ret