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

Disassembly:
sub esp, 0x288
mov eax, dword [0x1013567c]
xor eax, esp
mov dword [esp + 0x284], eax
mov eax, dword [esp + 0x290]
mov edx, dword [esp + 0x2a8]
push ebx
mov dword [esp + 0x70], eax
xor ebx, ebx
mov eax, dword [esp + 0x298]
push ebp
mov ebp, dword [esp + 0x2a4]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2a8]
push esi
mov dword [esp + 0x40], eax
mov esi, ebp
mov eax, dword [esp + 0x2b0]
push edi
mov edi, dword [esp + 0x2a8]
mov dword [esp + 0x28], eax
lea ecx, [esi + 2]
mov eax, dword [esp + 0x2bc]
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], ebp
mov dword [esp + 0x3c], edx
mov dword [esp + 0x68], eax
mov dword [esp + 0x84], ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], 1
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x40], ebx
mov ax, word [esi]
add esi, 2
cmp ax, word [esp + 0x84]
jne 0x100ca367
mov eax, dword [esp + 0x68]
sub esi, ecx
xor ecx, ecx
mov dword [edx], ecx
mov dword [eax], ecx
xor eax, eax
cmp dword [edi], 7
mov word [esp + 0x94], ax
sete cl
test ecx, ecx
mov dword [esp + 0x74], ecx
sete al
sar esi, 1
mov dword [esp + 0x4c], eax
je 0x100ca3c6
push 2
pop ebx
movzx eax, word [ebp]
push 8
push eax
call fcn.10116f7e
pop ecx
pop ecx
test eax, eax
je 0x100ca3be
add ebp, ebx
dec esi
jne 0x100ca3a7
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x20], ebp
push esi
push ebp
mov dword [esp + 0x78], ebp
call fcn.100d4978
test eax, eax
je 0x100ca3ec
mov ecx, dword [esp + 0x68]
mov dword [ecx], 1
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
xor eax, eax
jmp 0x100ca973
movzx ecx, word [ebp]
cmp ecx, 0x3f
jne 0x100ca47d
xor eax, eax
inc eax
cmp esi, eax
jne 0x100ca47d
mov ebx, dword [esp + 0x34]
mov esi, eax
imul edx, dword [ebx + 0x34], 0x1c
mov ecx, dword [ebx + 0x30]
add edx, ecx
jmp 0x100ca420
mov eax, dword [ecx + 8]
cmp dword [eax], 0x5f003f
jne 0x100ca41d
inc esi
add ecx, 0x1c
cmp ecx, edx
jb 0x100ca411
push 0x1000c89c
push 6
lea eax, [esp + 0x90]
push eax
call fcn.10062b10
push 0xa
push esi
push 4
lea eax, [esp + 0x98]
push eax
call fcn.1001b090
mov ecx, dword [esp + 0x28]
xor eax, eax
push ecx
push eax
push 2
pop ecx
push ecx
push eax
push eax
lea eax, [esp + 0x9c]
push eax
push ebx
call fcn.100d0a22
test eax, eax
js 0x100ca973
mov ebx, dword [esp + 0x3c]
mov dword [ebx], 1
jmp 0x100ca3e5
cmp dword [esp + 0x74], 0
jne 0x100ca4fc
mov eax, dword [esp + 0x34]
imul ebp, dword [eax + 0x34], 0x1c
mov edi, dword [eax + 0x30]
xor eax, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
add ebp, edi
cmp ecx, 0x40
jne 0x100ca4aa
push 2
pop ecx
add eax, ecx
dec esi
mov dword [esp + 0x20], eax
cmp edi, ebp
jae 0x100ca4e4
mov ebx, dword [esp + 0x24]
push dword [edi + 8]
push esi
push eax
call fcn.100cae36
test eax, eax
jne 0x100ca4cc
mov eax, dword [esp + 0x20]
add edi, 0x1c
inc ebx
cmp edi, ebp
jb 0x100ca4b2
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x40]
cmp edi, ebp
jae 0x100ca4e4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
jmp 0x100ca46e
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
cmp dword [esp + 0x70], ebp
je 0x100ca4fc
push 2
pop eax
sub ebp, eax
inc esi
mov dword [esp + 0x20], ebp
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x9c]
push eax
push esi
push ebp
call fcn.100cb011
test eax, eax
je 0x100ca8eb
mov esi, dword [esp + 0x4c]
xor ecx, ecx
mov dword [esp + 0x24], 1
cmp dword [esp + 0x5c], ecx
setne cl
mov dword [esp + 0x1c], ecx
test esi, esi
je 0x100ca98e
xor eax, eax
mov dword [esp + 0x80], eax
test ecx, ecx
jne 0x100ca61d
mov eax, dword [esp + 0x34]
mov esi, dword [edi + 0x118]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x48], eax
mov eax, dword [edi + 0x11c]
lea eax, [esi + eax*2]
mov dword [esp + 0x38], eax
cmp esi, eax
jae 0x100ca5b5
mov edi, dword [esp + 0x48]
mov ebx, eax
push 2
pop ebp
movsx eax, word [esi]
push dword [0x10135544]
imul eax, eax, 0x1c
push dword [eax + edi + 8]
lea eax, [esp + 0x9c]
push eax
call fcn.10091f7d
test eax, eax
jne 0x100ca5a1
add esi, ebp
cmp esi, ebx
jb 0x100ca57a
mov ebp, dword [esp + 0x20]
cmp esi, ebx
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x18]
jb 0x100caac3
test byte [edi + 0xb4], 8
je 0x100ca61d
mov esi, dword [edi + 4]
imul edi, dword [edi + 8], 0x34
add edi, esi
cmp esi, edi
jae 0x100ca619
push 0x34
pop ecx
test byte [esi + 0x28], 1
je 0x100ca5f1
push dword [0x10135544]
lea eax, [esp + 0x98]
push dword [esi + 0x18]
push eax
call fcn.10091f7d
push 0x34
pop ecx
test eax, eax
jne 0x100ca5f7
add esi, ecx
cmp esi, edi
jb 0x100ca5ce
cmp esi, edi
mov edi, dword [esp + 0x18]
jae 0x100ca61d
sub esi, dword [edi + 4]
mov eax, esi
mov dword [esp + 0x64], 1
cdq
idiv ecx
mov dword [esp + 0x6c], edi
mov dword [esp + 0x60], eax
jmp 0x100ca61d
mov edi, dword [esp + 0x18]
xor edx, edx
mov dword [esp + 0x30], edx
cmp dword [esp + 0x1c], edx
je 0x100ca6ad
mov esi, dword [edi + 0x90]
mov ecx, dword [edi + 0x18]
push 2
mov dword [esp + 0x3c], esi
lea eax, [esi + ecx*4]
pop ecx
mov dword [esp + 0x18], eax
cmp dword [edi], ecx
jne 0x100ca65b
push 9
pop ecx
cmp word [edi + 0xbc], cx
jne 0x100ca65b
lea eax, [esi + 4]
mov dword [esp + 0x18], eax
cmp esi, eax
jae 0x100ca6ad
mov ebx, dword [esp + 0x18]
push dword [0x10135544]
lea eax, [esp + 0x98]
push dword [esi]
push eax
call fcn.10091f7d
test eax, eax
jne 0x100ca683
add esi, 4
cmp esi, ebx
jb 0x100ca663
cmp esi, ebx
mov ebx, dword [esp + 0x40]
jae 0x100ca6ab
sub esi, dword [esp + 0x38]
mov eax, dword [edi + 0x10]
sar esi, 2
push 3
mov dword [esp + 0x34], 1
mov eax, dword [eax + esi*4]
mov dword [esp + 0x18], eax
pop eax
mov dword [esp + 0x24], eax
xor edx, edx
mov ecx, dword [edi + 0x10]
mov eax, dword [edi + 0x18]
push 2
pop esi
mov dword [esp + 0x48], ecx
lea eax, [ecx + eax*4]
mov dword [esp + 0x38], eax
cmp dword [edi], esi
jne 0x100ca6d8
push 9
pop esi
cmp word [edi + 0xbc], si
jne 0x100ca6d8
lea eax, [ecx + 4]
mov dword [esp + 0x38], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], edx
cmp ecx, eax
jae 0x100ca878
lea eax, [esp + 0x20]
mov esi, edx
push eax
lea eax, [esp + 0x1c]
push eax
push dword [ecx]
push dword [esp + 0x40]
call fcn.100cd639
mov edx, dword [esp + 0x18]
cmp edx, dword [esp + 0x20]
jae 0x100ca860
mov ebx, edx
push dword [0x10135544]
lea eax, [esp + 0x98]
push eax
push dword [ebx]
call fcn.10091f7d
test eax, eax
jne 0x100ca731
add ebx, 0x10
cmp ebx, dword [esp + 0x20]
jb 0x100ca70f
cmp ebx, dword [esp + 0x20]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x40]
jae 0x100ca860
mov edx, dword [esp + 0x18]
mov al, byte [edx + 0xe]
mov byte [esp + 0x13], al
shr al, 3
movzx ecx, al
mov eax, ecx
dec eax
je 0x100ca860
dec eax
je 0x100ca80a
dec eax
je 0x100ca7f3
dec eax
je 0x100ca7d4
dec eax
je 0x100ca788
dec eax
jne 0x100ca7a8
cmp dword [esp + 0x30], eax
jne 0x100ca801
mov ebx, 0xfffff441
jmp 0x100cab48
cmp dword [esp + 0x1c], 0
je 0x100ca7be
cmp dword [esp + 0x30], 0
je 0x100ca7a3
mov dword [esp + 0x2c], 1
jmp 0x100ca860
push 3
pop eax
mov ecx, eax
xor eax, eax
inc eax
cmp dword [esp + 0x80], 0
je 0x100ca820
test esi, esi
jne 0x100ca77e
jmp 0x100ca860
mov cl, byte [esp + 0x13]
xor eax, eax
movzx esi, cl
inc eax
shr esi, 2
and esi, eax
jne 0x100ca7ee
test cl, 2
jmp 0x100ca7ec
cmp dword [esp + 0x1c], 0
jne 0x100ca860
movzx esi, byte [esp + 0x13]
xor eax, eax
shr esi, 2
inc eax
and esi, eax
je 0x100ca77e
push 2
pop ecx
jmp 0x100ca7ab
cmp dword [esp + 0x1c], 0
je 0x100ca860
cmp dword [esp + 0x30], 0
je 0x100ca7a8
xor eax, eax
inc eax
mov dword [esp + 0x2c], eax
jmp 0x100ca860
cmp dword [esp + 0x1c], 0
jne 0x100ca860
movzx esi, byte [esp + 0x13]
xor eax, eax
shr esi, 2
inc eax
and esi, eax
jmp 0x100ca7ab
cmp word [esp + 0x24], ax
je 0x100ca82f
test esi, esi
je 0x100ca77e
test byte [esp + 0x13], 2
movzx eax, cx
mov dword [esp + 0x24], eax
movzx eax, word [edx + 0xc]
mov dword [esp + 0x50], eax
je 0x100ca852
push 3
pop eax
cmp cx, ax
je 0x100ca852
mov eax, dword [edx + 8]
jmp 0x100ca855
mov eax, dword [edx + 4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x80], esi
mov ecx, dword [esp + 0x48]
add ecx, 4
push 0
mov dword [esp + 0x4c], ecx
pop edx
cmp ecx, dword [esp + 0x38]
jb 0x100ca6e8
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x24]
movzx eax, dx
dec eax
je 0x100cab37
dec eax
je 0x100caaf9
dec eax
jne 0x100caacb
test ecx, ecx
je 0x100cab37
mov eax, dword [esp + 0x54]
xor ecx, ecx
cmp dword [esp + 0x30], ecx
mov edi, esi
mov ebp, dword [esp + 0x78]
cmove eax, ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x54], eax
xor eax, eax
mov esi, eax
mov dword [esp + 0x20], ebp
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x9c]
push eax
push dword [esp + 0x68]
push ebp
call fcn.100cb011
test eax, eax
jne 0x100ca521
mov ebx, 0xfffffc16
xor edi, edi
mov edx, 0xffffe023
cmp ebx, 0xfffffc16
lea eax, [edx - 0x29]
cmove edx, eax
add eax, 0x46
cmp ebx, 0xfffff440
cmove edx, eax
cmp ebx, 0xfffff441
mov eax, 0xffffe065
cmove edx, eax
movzx eax, word [ebp]
cmp eax, 0x60
je 0x100ca92b
cmp eax, 0x5b
jne 0x100ca92e
xor edi, edi
inc edi
lea ecx, [esp + 0x94]
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [esp + 0x84]
jne 0x100ca938
mov eax, dword [esp + 0x70]
sub ecx, esi
xor esi, esi
sar ecx, 1
push esi
push ecx
sub ebp, eax
sar ebp, 1
add ebp, edi
push ebp
push edx
push esi
push eax
push dword [esp + 0x94]
push dword [esp + 0x2b8]
call fcn.10037780
mov eax, ebx
mov ecx, dword [esp + 0x294]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1011720d
add esp, 0x288
ret 0x24
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x50]
push eax
push edi
push dword [esp + 0x40]
call fcn.100cd639
mov esi, dword [esp + 0x4c]
cmp esi, dword [esp + 0x58]
jae 0x100ca878
push dword [0x10135544]
lea eax, [esp + 0x98]
push eax
push dword [esi]
call fcn.10091f7d
test eax, eax
jne 0x100ca9d2
add esi, 0x10
cmp esi, dword [esp + 0x58]
jb 0x100ca9b0
mov dword [esp + 0x4c], esi
cmp esi, dword [esp + 0x58]
jae 0x100ca878
mov cl, byte [esi + 0xe]
xor edx, edx
inc edx
movzx eax, cl
and eax, edx
mov dword [esp + 0x30], eax
mov al, cl
shr al, 3
movzx eax, al
mov dword [esp + 0x24], eax
movzx eax, ax
dec eax
je 0x100caab9
dec eax
je 0x100caaa1
dec eax
je 0x100caab9
dec eax
je 0x100caaa1
dec eax
je 0x100caa5b
mov ecx, dword [esp + 0x1c]
dec eax
jne 0x100ca87c
test ecx, ecx
je 0x100ca87c
cmp dword [esp + 0x54], eax
je 0x100ca87c
cmp dword [esp + 0x30], eax
je 0x100ca87c
mov esi, dword [esi + 4]
push 3
pop eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x2c], edx
jmp 0x100ca880
cmp dword [esp + 0x1c], 0
je 0x100caa79
push 3
pop eax
mov dword [esp + 0x24], eax
mov esi, dword [esi + 4]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x14], esi
jmp 0x100ca880
test cl, 2
mov ecx, dword [esp + 0x1c]
je 0x100ca87c
push 2
pop eax
mov dword [esp + 0x24], eax
mov eax, dword [esi + 8]
mov dword [esp + 0x14], eax
movzx eax, word [esi + 0xc]
mov dword [esp + 0x50], eax
jmp 0x100ca87c
test cl, 4
je 0x100caab9
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x74], 0
push 2
pop eax
cmove ecx, eax
mov dword [esp + 0x24], ecx
movzx eax, word [esi + 0xc]
mov dword [esp + 0x50], eax
jmp 0x100caa69
movsx eax, word [esi]
jmp 0x100ca4dc
dec eax
je 0x100caade
dec eax
je 0x100ca77e
dec eax
jne 0x100cab48
xor ebx, ebx
test ecx, ecx
jmp 0x100cab3f
test ecx, ecx
je 0x100ca77e
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x100ca77e
mov ebx, 0xfffff440
jmp 0x100cab48
test ecx, ecx
jne 0x100cab37
mov eax, dword [esp + 0x64]
test eax, eax
je 0x100cab28
push dword [esp + 0x29c]
call fcn.10105495
test eax, eax
jne 0x100cab28
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x6c]
mov dword [eax], ecx
mov eax, dword [esp + 0x60]
jmp 0x100ca3df
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov eax, dword [esp + 0x50]
jmp 0x100ca3df
mov eax, dword [esp + 0x2c]
xor ebx, ebx
test eax, eax
setne bl
add ebx, 0xfffff440
mov eax, dword [esp + 0x64]
test eax, eax
jne 0x100cab15
cmp dword [esp + 0x74], eax
jne 0x100ca8f0
cmp ebx, 0xfffff440
jne 0x100ca8f0
mov esi, dword [esp + 0x34]
test dword [esi + 0x80], 0x4000
jne 0x100ca8f0
push 2
pop eax
cmp dword [edi], eax
jne 0x100cabe0
test dword [edi + 0xb4], 0x1000
je 0x100cabe0
push dword [esp + 0x68]
mov ebx, dword [esp + 0x40]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x48]
push ebx
push ecx
push eax
push ebp
push dword [edi + 0x98]
push esi
push dword [esp + 0x98]
push dword [esp + 0x2bc]
call fcn.100ca2c1
cmp dword [ebx], 1
je 0x100ca973
or dword [edi + 0xb4], 0x2000
inc dword [edi + 0x154]
and dword [edi + 0xb8], 0xfffffffc
jmp 0x100ca973
mov ebx, dword [esp + 0x70]
xor edi, edi
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, di
jne 0x100cabeb
sub ecx, edx
sar ecx, 1
cmp ecx, 0xff
jb 0x100cac0c
mov ebx, 0xfffff411
jmp 0x100ca8f2
mov ecx, dword [esp + 0x28]
push ecx
push edi
push 4
push edi
push edi
push ebx
push esi
jmp 0x100ca461