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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10062329
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb8
cmp byte [ebp + 0x10], 0
push ebx
push esi
push edi
mov dword [esp + 0x74], ecx
je 0x1002c5e5
and dword [edx], 0
jmp 0x1002cd7b
xor ebx, ebx
mov dword [esp + 0x10], 0x9e57ad95
mov dword [esp + 0x10], ebx
jmp 0x1002c608
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xa4], 0x4e2db58
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x1002c5f5
push ecx
push 0x29f5
push ecx
push 0x9cc
push 1
lea eax, [esp + 0x4a]
mov byte [esp + 0x4a], bl
push eax
push ecx
mov edx, 0x2de0
mov ecx, 0x6dbc
call fcn.1002cd90
mov dword [esp + 0x2c], ebx
add esp, 0x1c
cmp dword [esp + 0x10], ebx
jl 0x1002c6a2
push 2
lea ecx, [esp + 0x9c]
call fcn.100021e9
push 0x4deb
lea eax, [esp + 0xac]
mov dword [esp + 0xd0], ebx
push eax
push ecx
lea edx, [esp + 0xa4]
mov ecx, 0x26c3
call fcn.1002b27e
add esp, 0xc
lea eax, [esp + 0x98]
push eax
call fcn.1002d693
or dword [esp + 0xd0], 0xffffffff
pop ecx
lea ecx, [esp + 0x98]
call fcn.10002246
dec dword [esp + 0x10]
jns 0x1002c643
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
mov esi, dword [ebp + 0x14]
xor edx, edx
inc edx
xor ecx, ecx
mov dword [esp + 0xcc], edx
mov eax, dword [esi + 0x10]
mov dword [esp + 0x1c], 0xe9323d1b
mov dword [esp + 0x38], 9
mov dword [esp + 0x14], 0xae28de6
mov dword [esp + 0x2c], 0x510afbd1
mov dword [esp + 0x4c], edx
mov dword [esp + 0x20], 0x4679f786
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x38]
cmp eax, 0x837a
setne cl
xor eax, eax
add ecx, 0xb0e8
cmp ecx, edx
setle al
xor ecx, ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
add eax, 0x5378470e
cmp eax, edx
mov eax, dword [esp + 0x38]
setg cl
xor ebx, ebx
cmp ecx, eax
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
setle bl
xor edx, edx
cmp ecx, eax
setge dl
imul edx, dword [esp + 0x1c]
cmp edx, ebx
je 0x1002c74c
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
xor ebx, ebx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], 0x19b885b3
mov dword [esp + 0x24], 0xd6158f8
mov dword [esp + 0x3c], 0x5aca64a9
mov dword [esp + 0x10], ebx
jmp 0x1002c784
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x54], 1
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x1002c774
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
sub ecx, eax
cmp ecx, dword [esp + 0x14]
jl 0x1002c7a3
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x2c]
sub ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
neg ecx
sbb ecx, ecx
xor edx, edx
add ecx, 2
cmp ecx, eax
mov eax, dword [esp + 0x14]
setle dl
xor ecx, ecx
add edx, 0x2b0a94fe
cmp edx, eax
setl cl
sub ecx, dword [esp + 0x18]
je 0x1002c82b
mov dword [esp + 0x20], 0xffffffff
xor edx, edx
mov dword [esp + 0x3c], ebx
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x2c], 0x93632cac
mov eax, 0x89e7675d
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
cmp ecx, eax
mov eax, dword [esp + 0x24]
setne dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [esp + 0x20]
setg bl
xor ecx, ecx
cmp ebx, eax
setg cl
mov dword [esp + 0x3c], ecx
jmp 0x1002c9b1
mov dword [esp + 0x10], 6
mov dword [esp + 0x18], 0xed5c0eb
mov dword [esp + 0x50], 1
mov dword [esp + 0x18], ebx
jmp 0x1002c859
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x48], 0xfb40acb4
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 1
jl 0x1002c849
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x1c], 2
jg 0x1002c991
push 4
mov dword [esp + 0x7c], 0x62155b9
mov eax, dword [esp + 0x28]
pop ecx
sub ecx, eax
je 0x1002c8a3
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + eax*4 + 0x54]
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x3c], ebx
jne 0x1002c89e
cmp dword [esp + 0x10], ebx
je 0x1002c8a3
xor edx, edx
inc edx
jmp 0x1002c8a5
mov edx, ebx
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp edx, eax
push 7
setge cl
xor edx, edx
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x20]
mov eax, dword [esp + eax*4 + 0x58]
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x4c], 0xffffffff
mov eax, dword [esp + 0x20]
mov eax, dword [esp + eax*4 + 0x58]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + eax*4 + 0x58]
mov eax, dword [esp + 0x30]
cmp ecx, eax
mov eax, dword [esp + 0x18]
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x20]
setle cl
xor ebx, ebx
cmp ecx, 0xedf4
setle bl
xor ecx, ecx
mov dword [esp + eax*4 + 0x58], ebx
mov edx, dword [esp + 0x7c]
add edx, ebx
imul edx, dword [esp + 0x18]
mov eax, dword [esp + 0x40]
cmp eax, edx
setne cl
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x50]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x40]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x54]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
pop ecx
cmp ecx, eax
mov eax, dword [esp + 0x20]
push 0
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
pop ebx
sete cl
mov dword [esp + 0x18], ecx
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 2
jle 0x1002c86f
mov byte [esp + 0x33], bl
cmp byte [esp + 0x33], 0
je 0x1002c9b1
push 0x5140
push 0x5f5e
mov dl, 1
xor cl, cl
call fcn.1002bb3a
pop ecx
pop ecx
mov ebx, dword [ebp + 8]
mov edx, 0x1ac1
push 0
push 0x36c4
mov ecx, 0x1a32
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x58], eax
lea eax, [esp + 0x3a]
mov dword [esp + 0x78], 0xea5d6c05
push eax
mov byte [esp + 0x3e], 0
call fcn.1002bab8
add esp, 0xc
lea eax, [esp + 0x70]
mov dl, 1
mov ecx, 0x66c8
push 0x20c4
push 0
push 0x3e52
push 1
push 0x77c9
push eax
call fcn.1002a217
add esp, 0x18
cmp dword [esi + 0x14], 8
jb 0x1002ca17
mov eax, dword [esi]
jmp 0x1002ca19
mov eax, esi
push dword [esi + 0x10]
mov ecx, ebx
push 0
push eax
call fcn.100290e9
xor edi, edi
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], edi
cmp edi, dword [esp + 0x50]
jae 0x1002cc7d
push 1
push ecx
push 0xc16
push ecx
mov edx, 0x5a9b
call fcn.1002a4bb
mov eax, dword [esp + 0x54]
add esp, 0x10
cmp eax, 0xffffffff
je 0x1002cc8f
cmp eax, dword [esp + 0x40]
je 0x1002cc4e
push 2
lea ecx, [esp + 0x80]
call fcn.100021e9
mov dword [esp + 0x20], 0xfffffff7
xor edx, edx
mov dword [esp + 0x10], 0xbb0f55f5
mov dword [esp + 0x24], 0xa280505b
mov dword [esp + 0x20], 0xe72b4cd9
mov dword [esp + 0x20], 0xdda3982a
mov dword [esp + 0x4c], edx
mov dword [esp + 0x14], edx
jmp 0x1002cabc
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x7c]
mov dword [eax + ecx*4], 0x13dd33a4
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x1002caa9
mov dword [esp + 0x14], edx
jmp 0x1002cad9
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x28], 0x278b7212
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 1
jl 0x1002cac9
mov dword [esp + 0x14], edx
jmp 0x1002caf9
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0xb0], 0xb43b78c3
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x1002cae6
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + 0x28]
mov dword [edi + 4], edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x10], edx
jne 0x1002cb2f
cmp dword [esp + 0x24], edx
jne 0x1002cb2f
mov ecx, edx
jmp 0x1002cb32
xor ecx, ecx
inc ecx
mov eax, dword [esp + 0x7c]
xor edx, edx
cmp ecx, dword [eax]
mov eax, dword [esp + 0x28]
setle dl
xor ecx, ecx
cmp edx, eax
setne cl
cmp ecx, 1
sbb eax, eax
xor ecx, ecx
inc eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
cmp eax, dword [edi + 4]
setge cl
mov dword [esp + 0xb0], ecx
mov eax, dword [esp + 0x28]
mov edx, dword [edi + 4]
xor eax, eax
test edx, edx
setne al
xor ecx, ecx
cmp eax, edx
setge cl
sub ecx, 0x71eb
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, edx
setne al
xor edx, edx
imul ecx, eax, 0x5619
mov eax, dword [esp + 0x28]
cmp ecx, eax
mov eax, dword [esp + 0x28]
mov ecx, 0xa11ad519
setg dl
sub edx, 0x491
neg edx
sbb edx, edx
inc edx
mov dword [edi + 4], edx
mov dword [esp + 0x20], 1
mov eax, dword [esp + 0x20]
cmp ecx, eax
mov ecx, 0xacb588f4
sbb eax, eax
neg eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
cmp ecx, eax
mov eax, dword [esp + 0x28]
sbb ecx, ecx
xor edx, edx
inc ecx
add ecx, eax
mov eax, dword [esp + 0x28]
cmp eax, ecx
mov eax, 0xf90bf567
setge dl
cmp eax, edx
sbb eax, eax
xor edx, edx
inc eax
cmp eax, 2
mov eax, dword [esp + 0x28]
setne dl
xor ecx, ecx
sub edx, 3
cmp edx, eax
setne cl
mov dword [esp + 0x4c], ecx
lea ecx, [esp + 0x7c]
mov byte [esp + 0xcc], 1
call fcn.10002246
lea eax, [esp + 0x40]
push eax
push ebx
lea eax, [esp + 0x68]
mov edx, 0x3815
push eax
lea eax, [esp + 0x50]
xor cl, cl
push 0x5ae0
push eax
call fcn.1002bb6c
mov eax, dword [esp + 0x58]
add esp, 0x14
mov edi, dword [esp + 0x6c]
add edi, eax
cmp dword [esi + 0x14], 8
mov dword [esp + 0x40], edi
jb 0x1002cc62
mov eax, dword [esi]
jmp 0x1002cc64
mov eax, esi
push dword [esi + 0x10]
mov ecx, ebx
push edi
push eax
call fcn.100290e9
mov dword [esp + 0x44], eax
cmp edi, 0xffffffff
jne 0x1002ca30
xor ebx, ebx
xor ecx, ecx
inc ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x10], ebx
jmp 0x1002cd1e
lea eax, [esp + 0x40]
push eax
push ebx
push 0x62ec
push 1
lea edx, [esp + 0x70]
call fcn.10029776
add esp, 0x10
xor ebx, ebx
mov dword [esp + 0x10], ebx
jmp 0x1002ccc3
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x88], 0xfffffffe
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x1002ccb0
mov dword [esp + 0x90], ebx
jmp 0x1002ccfc
push 0x65e
push 0x2235
push 1
mov byte [esp + 0x41], bl
lea ecx, [esp + 0x41]
push ebx
mov edx, 0x3f68
call fcn.1002a2c4
add esp, 0x10
inc dword [esp + 0x90]
cmp dword [esp + 0x90], 0xf
je 0x1002ccd3
jmp 0x1002cc7f
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xac], 0x624039b
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x1002cd0b
mov dword [esp + 0x10], ebx
jmp 0x1002cd48
lea eax, [esp + 0x34]
mov byte [esp + 0x34], bl
push eax
push 0x7134
mov ecx, 0x55f3
call fcn.1002b3de
inc dword [esp + 0x18]
pop ecx
pop ecx
xor dl, dl
cmp dword [esp + 0x10], ebx
jle 0x1002cd2a
lea eax, [esp + 0x37]
mov byte [esp + 0x37], bl
push eax
mov ecx, 0x5732
call fcn.1002b1f0
pop ecx
mov ecx, dword [esp + 0x74]
lea eax, [esp + 0x60]
push eax
call fcn.1002dcbb
lea ecx, [esp + 0x60]
call fcn.1002e074
mov ecx, dword [esp + 0xc4]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret