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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xb4
push ebx
push esi
mov esi, ecx
mov ebx, edx
xor ecx, ecx
mov dword [esp + 0x4c], ebx
inc ecx
mov dword [esp + 0x58], esi
mov dword [esp + 0xc], ecx
push edi
test ebx, ebx
je 0x1002d5e2
call fcn.1000b991
test eax, eax
jne 0x1002d5e2
xor edi, edi
cmp dword [esi + 0x18], edi
jne 0x1002d5e2
push edi
push edi
push edi
push 0x15
pop edx
mov ecx, esi
call fcn.1002021a
add esp, 0xc
test eax, eax
je 0x1002cb5c
xor eax, eax
inc eax
jmp 0x1002d5e4
push 0x2c
lea eax, [esp + 0x6c]
push edi
push eax
call fcn.10090560
add esp, 0xc
cmp dword [ebx + 0x20], edi
je 0x1002cb9c
cmp dword [ebx + 0x24], edi
jne 0x1002cb82
mov eax, ebx
mov dword [eax + 0x24], ebx
mov eax, dword [eax + 0x20]
test eax, eax
jne 0x1002cb78
push dword [ebp + 0x1c]
mov edx, ebx
mov ecx, esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.1002b714
add esp, 0xc
jmp 0x1002d5e4
cmp dword [ebp + 8], 3
mov edi, dword [ebx + 0x1c]
jg 0x1002cba9
and dword [ebx + 0x1c], 0
push 0
mov edx, ebx
mov ecx, esi
call fcn.1002c6e2
pop ecx
test eax, eax
jne 0x1002d5c5
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 0x18]
mov dword [esp + 0x3c], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x38], eax
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x14], eax
mov dword [esp + 0x40], eax
movzx eax, byte [ebx + 7]
mov dword [esp + 0x54], eax
movzx eax, byte [ebx + 5]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx]
mov dword [ebx + 0x1c], edi
mov dword [esp + 0x44], edx
mov dword [esp + 0x4c], eax
test eax, eax
je 0x1002d5c5
cmp dword [esi + 0x18], 0
jg 0x1002d5c5
cmp dword [ebp + 8], 5
je 0x1002cc14
cmp dword [ebp + 8], 6
jne 0x1002cc2a
cmp dword [eax], 1
jle 0x1002cc2a
push 0x100bee90
push esi
call fcn.1000b0e5
pop ecx
jmp 0x1002d5c4
xor eax, eax
mov ecx, esi
cmp dword [ebp + 8], 3
cmovle edi, eax
mov dword [esp + 0x30], edi
mov dword [esp + 0x20], edi
call fcn.1002b4c3
mov edi, eax
mov dword [esp + 0x2c], edi
test edi, edi
je 0x1002d5c5
mov eax, dword [esp + 0x3c]
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x18], ecx
cmp dx, word [eax]
jge 0x1002cd3f
xor edi, edi
mov dword [esp + 0x34], edi
and dword [esp + 0x24], 0
cmp dword [edi + eax + 0x18], 0
je 0x1002cd20
cmp byte [edi + eax + 0x1c], 0
jne 0x1002cd20
mov edx, dword [edi + eax + 0xc]
test edx, edx
je 0x1002ccac
mov ebx, dword [esi + 0xb0]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x50]
mov dword [esi + 0xb0], edx
mov dword [esp + 0x1c], 1
jmp 0x1002ccb1
and dword [esp + 0x1c], 0
push 0
lea edx, [esp + 0x58]
push edx
mov edx, dword [edi + eax + 0x18]
push ecx
push ebx
push dword [edi + eax + 0x20]
mov ecx, esi
push 8
call fcn.1002cafe
add esp, 0x18
cmp dword [esp + 0x1c], 0
je 0x1002ccdf
mov eax, dword [esp + 0x24]
mov dword [esi + 0xb0], eax
cmp dword [ebp + 8], 3
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], ecx
jle 0x1002cd02
mov edi, dword [ebx + 0x1c]
mov dword [esp + 0x30], edi
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x34]
mov ecx, dword [ebx + 0x14]
mov edx, dword [ebx + 0x18]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x40], ecx
movzx ecx, byte [ebx + 5]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x44], edx
movsx eax, word [eax]
inc ecx
add edi, 0x30
mov dword [esp + 0x18], ecx
cmp ecx, eax
mov dword [esp + 0x34], edi
mov eax, dword [esp + 0x3c]
jl 0x1002cc6b
mov edi, dword [esp + 0x2c]
push dword [ebp + 0xc]
mov edx, ebx
mov ecx, esi
push dword [ebp + 8]
call fcn.1002c308
pop ecx
pop ecx
test eax, eax
jne 0x1002d5aa
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x1002cd93
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x1002cd93
push dword [esp + 0x54]
mov edx, dword [ebp + 0x14]
push dword [eax]
call fcn.1002c016
pop ecx
pop ecx
test eax, eax
je 0x1002cd93
cmp dword [esp + 0x54], 0
je 0x1002d5c5
mov eax, dword [ebp + 0x18]
mov dword [eax], 1
jmp 0x1002d5c5
mov eax, dword [esp + 0x30]
test eax, eax
je 0x1002cddd
cmp dword [esi + 0x18], 0
jne 0x1002d5c5
mov edx, eax
mov ecx, esi
call fcn.1002a4f4
mov edx, dword [esp + 0x30]
mov ecx, dword [esi + 0x1c]
push 0xfffffffffffffff7
push eax
mov dword [edx + 8], ecx
mov ecx, edi
inc dword [esi + 0x1c]
mov eax, dword [edx]
add eax, 2
push eax
push dword [edx + 8]
push 0x78
pop edx
call fcn.100154d6
add esp, 0x10
mov dword [esp + 0x24], eax
mov dword [ebx + 0x40], eax
jmp 0x1002cde2
or dword [esp + 0x24], 0xffffffff
cmp dword [ebp + 8], 8
jne 0x1002cdfd
mov eax, dword [esp + 0x4c]
mov ecx, edi
push dword [eax]
push dword [ebp + 0xc]
push 0x78
pop edx
call fcn.10015483
pop ecx
pop ecx
mov ecx, edi
call fcn.10015502
push eax
mov edx, ebx
mov dword [esp + 0x98], eax
mov ecx, esi
call fcn.1002b508
cmp dword [esp + 0x20], 0
pop ecx
je 0x1002ce49
mov eax, dword [esi + 0x1c]
mov ecx, esi
mov dword [esp + 0x18], eax
inc eax
mov dword [esi + 0x1c], eax
mov edx, dword [ebx]
call fcn.1002a4f4
push 0xfffffffffffffff7
push eax
push 0
push dword [esp + 0x24]
mov ecx, edi
push 0x78
pop edx
call fcn.100154d6
add esp, 0x10
jmp 0x1002ce4e
or dword [esp + 0x18], 0xffffffff
cmp dword [esp + 0x54], 0
jne 0x1002cef0
cmp dword [esp + 0x14], 0
jne 0x1002cef0
mov edx, dword [esp + 0x3c]
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x3c]
mov ecx, esi
call fcn.100317c3
pop ecx
pop ecx
mov ecx, eax
mov dword [esp + 0x2c], ecx
test ecx, ecx
je 0x1002d5c5
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
test edx, edx
js 0x1002ceb2
test eax, eax
jne 0x1002ceb2
push 1
mov ecx, edi
call fcn.100157ac
or dword [ebx + 0x40], 0xffffffff
mov eax, dword [esp + 0x34]
pop ecx
mov ecx, dword [esp + 0x2c]
push dword [ebp + 0x1c]
mov edx, ebx
push dword [ecx + 0x10]
push dword [ecx + 0xc]
mov ecx, esi
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [esp + 0x2c]
push eax
push 0
push 0
push dword [esp + 0x70]
call fcn.1002a1dc
add esp, 0x28
test eax, eax
jne 0x1002d5c5
mov ecx, dword [esp + 0x2c]
call fcn.100328fd
jmp 0x1002d569
mov ecx, edi
call fcn.10015502
mov dword [esp + 0x34], eax
lea edi, [esp + 0x9c]
push 9
xor eax, eax
pop ecx
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x68]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x9c], esi
mov dword [esp + 0xa0], edi
mov dword [esp + 0xb8], eax
test ecx, ecx
je 0x1002cf37
mov eax, dword [ecx]
inc eax
mov dword [esp + 0x74], eax
jmp 0x1002cf3c
and dword [esp + 0x74], 0
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x70], ecx
lea ecx, [esp + 0x9c]
call fcn.1001ea60
test eax, eax
jne 0x1002d5c5
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x9c]
call fcn.1001ea60
test eax, eax
jne 0x1002d5c5
mov eax, dword [esp + 0x44]
test eax, eax
je 0x1002cf8e
mov edx, eax
lea ecx, [esp + 0x9c]
call fcn.1001ea3b
test eax, eax
jne 0x1002d5c5
and dword [esp + 0x1c], 0
cmp dword [esp + 0x8c], 0
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x84], eax
jle 0x1002cfec
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x88]
mov edx, dword [ecx + eax]
lea ecx, [esp + 0x9c]
mov edx, dword [edx + 0x10]
call fcn.1001ea60
test eax, eax
jne 0x1002d5c5
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
inc eax
add ecx, 0x10
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
cmp eax, dword [esp + 0x8c]
jl 0x1002cfae
call fcn.1000b991
test eax, eax
jne 0x1002d5c5
cmp dword [esp + 0x14], eax
je 0x1002d4d6
mov edi, dword [esp + 0x2c]
mov ecx, edi
call fcn.10015502
mov ecx, edi
mov dword [esp + 0x28], eax
call fcn.10015502
mov ecx, edi
mov dword [esp + 0x64], eax
call fcn.10015502
mov ecx, dword [esi + 0x1c]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x6c], ecx
inc ecx
mov dword [esi + 0x1c], ecx
mov ecx, esi
mov dword [esp + 0x60], eax
call fcn.1002a4f4
push 0xfffffffffffffff7
push eax
push dword [esp + 0x7c]
mov ecx, edi
mov dword [esp + 0x64], eax
push dword [esp + 0x78]
push 0x78
pop edx
call fcn.100154d6
mov dword [esp + 0xa8], eax
mov eax, dword [esi + 0x20]
mov dword [esp + 0x3c], eax
inc eax
mov dword [esp + 0x2c], eax
push dword [esp + 0x2c]
lea edx, [eax + 1]
mov eax, dword [esp + 0x28]
mov dword [esi + 0x20], edx
push 0
mov dword [esp + 0x3c], edx
mov ecx, dword [eax]
add ecx, edx
mov dword [esi + 0x20], ecx
mov eax, dword [eax]
add eax, ecx
mov dword [esp + 0x60], ecx
push 0x30
pop edx
mov ecx, edi
mov dword [esi + 0x20], eax
call fcn.10015483
push dword [esp + 0x44]
mov ecx, edi
push 0
push 0x30
pop edx
call fcn.10015483
push dword [esp + 0x48]
mov ecx, edi
push 0
push 0x5e
pop edx
call fcn.10015483
push dword [esp + 0x44]
mov eax, dword [edi + 0x10]
mov ecx, edi
push 1
push 0x30
pop edx
mov dword [esp + 0x40], eax
call fcn.10015483
push 0
push 0
push 0x16
pop edx
mov ecx, edi
call fcn.10015483
mov eax, dword [edi + 0x10]
mov dword [esp + 0x58], eax
add eax, 2
push eax
push dword [esp + 0x68]
push 5
pop edx
mov ecx, edi
call fcn.10015483
add esp, 0x40
mov ecx, edi
push 0
push 0
push 0x16
pop edx
call fcn.10015483
pop ecx
pop ecx
lea edx, [esp + 0x68]
mov ecx, esi
call fcn.1002c94c
mov edx, dword [esp + 0x44]
test edx, edx
je 0x1002d12f
mov eax, dword [esp + 0x20]
mov ecx, esi
inc eax
push 1
push eax
call fcn.1001e4f7
pop ecx
pop ecx
push dword [ebp + 0x1c]
mov eax, dword [esp + 0x24]
mov edx, ebx
push dword [esp + 0x14]
inc eax
mov ecx, esi
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [esp + 0x2c]
push dword [esp + 0x48]
push 0
push 0
push dword [ebx]
call fcn.1002a1dc
add esp, 0x28
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1002d5c5
push eax
push eax
push 0x16
pop edx
mov ecx, edi
call fcn.10015483
mov eax, dword [edi + 0x10]
lea edx, [esp + 0x70]
mov ecx, esi
mov dword [esp + 0x4c], eax
call fcn.1002c88b
push 0
push 0
push 0x16
pop edx
mov ecx, edi
call fcn.10015483
mov edx, dword [esp + 0x38]
mov ecx, edi
call fcn.10015540
push dword [esp + 0x54]
push 0
push 0x2e
pop edx
call fcn.10015483
mov edx, dword [esp + 0x54]
lea eax, [esp + 0x58]
push eax
push dword [esp + 0x54]
mov ecx, esi
call fcn.100317c3
add esp, 0x20
mov dword [esp + 0x38], eax
test eax, eax
je 0x1002d5af
mov eax, dword [esp + 0x40]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x1002d1ee
mov eax, dword [ebx + 0x14]
xor edx, edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
jmp 0x1002d2be
xor ecx, ecx
mov edx, eax
inc ecx
mov dword [esp + 0x18], ecx
mov ecx, esi
call fcn.1001e2d4
push 0
push dword [esp + 0x70]
mov ecx, edi
push 6
pop edx
call fcn.10015483
mov eax, dword [esp + 0x48]
pop ecx
pop ecx
xor ecx, ecx
mov eax, dword [eax]
inc eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x28], eax
cmp dword [esp + 0x7c], ecx
jle 0x1002d273
mov ebx, dword [esp + 0x7c]
xor esi, esi
mov edx, dword [esp + 0x78]
cmp dword [edx + esi + 0xc], eax
jl 0x1002d25f
push dword [edx + esi + 4]
mov ecx, edi
push dword [edx + esi + 8]
mov edx, dword [edx + esi]
call fcn.1001d9b2
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x84]
inc eax
pop ecx
pop ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x28], eax
inc ecx
add esi, 0x18
mov dword [esp + 0x10], ecx
cmp ecx, ebx
jl 0x1002d22d
mov esi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x50]
push 0
push eax
push 0x5a
pop edx
mov ecx, edi
call fcn.10015483
push 0
push dword [esp + 0x78]
mov ecx, edi
push 0x6e
pop edx
call fcn.10015483
mov ecx, dword [esp + 0x48]
call fcn.100328fd
push dword [esp + 0x44]
mov ecx, edi
push dword [esp + 0x80]
push 0x13
pop edx
call fcn.10015483
mov eax, dword [esp + 0x58]
add esp, 0x18
mov edx, dword [esp + 0x18]
mov byte [esp + 0x69], 1
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x40], ecx
xor ecx, ecx
mov dword [esp + 0x10], ecx
cmp dword [eax], ecx
jle 0x1002d348
mov ebx, dword [esp + 0x14]
xor eax, eax
mov dword [esp + 0x28], eax
test edx, edx
je 0x1002d2f0
push ecx
push dword [esp + 0x70]
mov ecx, edi
push 3
pop edx
call fcn.10015483
pop ecx
pop ecx
jmp 0x1002d302
mov byte [esp + 0x68], 1
mov ecx, esi
mov edx, dword [ebx + 0xc]
mov edx, dword [edx + eax]
call fcn.1001da26
mov eax, dword [ebx]
xor ecx, ecx
dec eax
cmp dword [esp + 0x10], eax
mov eax, dword [esp + 0x48]
setl cl
add eax, dword [esp + 0x10]
push ecx
push eax
push 0x7b
pop edx
mov ecx, edi
call fcn.10015483
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x20]
add eax, 0xc
pop ecx
pop ecx
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], ecx
cmp ecx, dword [ebx]
jl 0x1002d2d9
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
dec eax
mov dword [esp + 0x28], eax
js 0x1002d3cf
mov ebx, dword [esp + 0x14]
mov esi, eax
mov eax, dword [ebx]
dec eax
cmp esi, eax
jge 0x1002d373
mov eax, dword [esp + 0x48]
xor edx, edx
add eax, esi
inc edx
push 0
push eax
mov ecx, edi
call fcn.10015483
pop ecx
pop ecx
mov eax, dword [esp + 0x24]
xor edx, edx
add eax, esi
inc edx
push 0
push eax
mov ecx, edi
call fcn.10015483
pop ecx
pop ecx
mov ecx, edi
test esi, esi
jne 0x1002d39b
push dword [esp + 0x60]
push 0x200
push 0x44
jmp 0x1002d3a6
push dword [esp + 0x64]
push 0x200
push 0x43
pop edx
call fcn.10015483
mov eax, dword [esp + 0x60]
or edx, 0xffffffff
pop ecx
pop ecx
push 0xfffffffffffffffc
push dword [eax + esi*4 + 0xc]
mov ecx, edi
call fcn.100157dd
dec esi
pop ecx
pop ecx
jns 0x1002d357
mov esi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x50]
mov edx, dword [esp + 0x64]
mov ecx, edi
call fcn.10015540
mov eax, dword [esp + 0x14]
and dword [esp + 0x58], 0
cmp dword [eax], 0
jle 0x1002d42a
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x24]
sub eax, ecx
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x58]
mov dword [esp + 0x48], eax
add eax, ecx
mov edx, 0x83
push eax
push ecx
mov ecx, edi
call fcn.10015483
mov eax, dword [esp + 0x50]
inc esi
pop ecx
pop ecx
mov ecx, dword [esp + 0x24]
inc ecx
mov dword [esp + 0x24], ecx
cmp esi, dword [ebx]
jl 0x1002d3fe
mov esi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x50]
push dword [esp + 0x20]
mov ecx, edi
push 0
push 0x2e
pop edx
call fcn.10015483
push dword [esp + 0x3c]
mov ecx, edi
push dword [esp + 0x28]
push 5
pop edx
call fcn.10015483
push dword [esp + 0x54]
mov ecx, edi
push 0
push 0x2e
pop edx
call fcn.10015483
mov edx, dword [esp + 0x78]
mov ecx, edi
call fcn.10015540
lea edx, [esp + 0x80]
mov ecx, esi
call fcn.1002c99b
push dword [esp + 0x44]
mov ecx, edi
push 1
push 0x30
pop edx
call fcn.10015483
mov ecx, dword [esp + 0x38]
add esp, 0x20
test ecx, ecx
je 0x1002d4a5
push dword [esp + 0x40]
mov ecx, edi
push dword [esp + 0x70]
push 0x6d
pop edx
call fcn.10015483
pop ecx
jmp 0x1002d4be
mov ecx, dword [esp + 0x38]
call fcn.100328fd
mov edx, dword [esp + 0x98]
mov ecx, edi
push 1
call fcn.100157ac
pop ecx
push dword [esp + 0x20]
mov ecx, edi
push 0
push 0x2e
pop edx
call fcn.10015483
pop ecx
pop ecx
jmp 0x1002d55e
lea edx, [esp + 0x68]
mov ecx, esi
call fcn.1002c88b
push 0
push dword [esp + 0x3c]
mov edx, edi
mov ecx, esi
call fcn.100317c3
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x1002d5c5
lea edx, [esp + 0x68]
mov ecx, esi
call fcn.1002c99b
mov ecx, edi
call fcn.100328fd
lea edx, [esp + 0x68]
mov ecx, esi
call fcn.1002c94c
mov eax, dword [esp + 0x44]
xor edi, edi
mov dword [esp + 0x30], edi
test eax, eax
je 0x1002d538
push 1
push dword [esp + 0x38]
mov edx, eax
mov ecx, esi
call fcn.1001e4f7
pop ecx
pop ecx
push dword [ebp + 0x1c]
mov eax, dword [esp + 0x38]
mov edx, ebx
push eax
push eax
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
push 0xffffffffffffffff
push edi
push edi
push edi
push dword [ebx]
call fcn.1002a1dc
mov edi, dword [esp + 0x54]
add esp, 0x28
mov edx, dword [esp + 0x34]
mov ecx, edi
call fcn.10015540
cmp dword [esp + 0x30], 0
je 0x1002d589
push dword [ebp + 0xc]
mov eax, dword [esp + 0x50]
mov edx, ebx
push dword [ebp + 8]
mov ecx, esi
push dword [eax]
push edi
call fcn.1002a584
add esp, 0x10
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x1002d59c
imul ecx, dword [ebp + 0x14], 0x30
mov eax, dword [eax + 0xc]
mov byte [ecx + eax + 0x1c], 1
mov edx, dword [esp + 0x94]
mov ecx, edi
call fcn.10015540
and dword [esp + 0x10], 0
cmp dword [ebp + 8], 4
jne 0x1002d5c5
push dword [esp + 0x4c]
mov edx, dword [esp + 0x40]
mov ecx, esi
call fcn.1002aa40
pop ecx
push dword [esp + 0x78]
call fcn.1000af1e
pop ecx
push dword [esp + 0x88]
call fcn.1000af1e
mov eax, dword [esp + 0x14]
pop ecx
jmp 0x1002d5e4
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret