Function at 0x100ca0c1
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 0x100ca167
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 0x100ca1c6
push 2
pop ebx
movzx eax, word [ebp]
push 8
push eax
call fcn.10116dce
pop ecx
pop ecx
test eax, eax
je 0x100ca1be
add ebp, ebx
dec esi
jne 0x100ca1a7
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x20], ebp
push esi
push ebp
mov dword [esp + 0x78], ebp
call fcn.100d4775
test eax, eax
je 0x100ca1ec
mov ecx, dword [esp + 0x68]
mov dword [ecx], 1
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
xor eax, eax
jmp 0x100ca773
movzx ecx, word [ebp]
cmp ecx, 0x3f
jne 0x100ca27d
xor eax, eax
inc eax
cmp esi, eax
jne 0x100ca27d
mov ebx, dword [esp + 0x34]
mov esi, eax
imul edx, dword [ebx + 0x34], 0x1c
mov ecx, dword [ebx + 0x30]
add edx, ecx
jmp 0x100ca220
mov eax, dword [ecx + 8]
cmp dword [eax], 0x5f003f
jne 0x100ca21d
inc esi
add ecx, 0x1c
cmp ecx, edx
jb 0x100ca211
push 0x1000c87c
push 6
lea eax, [esp + 0x90]
push eax
call fcn.10062a00
push 0xa
push esi
push 4
lea eax, [esp + 0x98]
push eax
call fcn.1001b060
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.100d0822
test eax, eax
js 0x100ca773
mov ebx, dword [esp + 0x3c]
mov dword [ebx], 1
jmp 0x100ca1e5
cmp dword [esp + 0x74], 0
jne 0x100ca2fc
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 0x100ca2aa
push 2
pop ecx
add eax, ecx
dec esi
mov dword [esp + 0x20], eax
cmp edi, ebp
jae 0x100ca2e4
mov ebx, dword [esp + 0x24]
push dword [edi + 8]
push esi
push eax
call fcn.100cac36
test eax, eax
jne 0x100ca2cc
mov eax, dword [esp + 0x20]
add edi, 0x1c
inc ebx
cmp edi, ebp
jb 0x100ca2b2
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x40]
cmp edi, ebp
jae 0x100ca2e4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
jmp 0x100ca26e
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
cmp dword [esp + 0x70], ebp
je 0x100ca2fc
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.100cae11
test eax, eax
je 0x100ca6eb
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 0x100ca78e
xor eax, eax
mov dword [esp + 0x80], eax
test ecx, ecx
jne 0x100ca41d
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 0x100ca3b5
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.10091d7d
test eax, eax
jne 0x100ca3a1
add esi, ebp
cmp esi, ebx
jb 0x100ca37a
mov ebp, dword [esp + 0x20]
cmp esi, ebx
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x18]
jb 0x100ca8c3
test byte [edi + 0xb4], 8
je 0x100ca41d
mov esi, dword [edi + 4]
imul edi, dword [edi + 8], 0x34
add edi, esi
cmp esi, edi
jae 0x100ca419
push 0x34
pop ecx
test byte [esi + 0x28], 1
je 0x100ca3f1
push dword [0x10135544]
lea eax, [esp + 0x98]
push dword [esi + 0x18]
push eax
call fcn.10091d7d
push 0x34
pop ecx
test eax, eax
jne 0x100ca3f7
add esi, ecx
cmp esi, edi
jb 0x100ca3ce
cmp esi, edi
mov edi, dword [esp + 0x18]
jae 0x100ca41d
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 0x100ca41d
mov edi, dword [esp + 0x18]
xor edx, edx
mov dword [esp + 0x30], edx
cmp dword [esp + 0x1c], edx
je 0x100ca4ad
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 0x100ca45b
push 9
pop ecx
cmp word [edi + 0xbc], cx
jne 0x100ca45b
lea eax, [esi + 4]
mov dword [esp + 0x18], eax
cmp esi, eax
jae 0x100ca4ad
mov ebx, dword [esp + 0x18]
push dword [0x10135544]
lea eax, [esp + 0x98]
push dword [esi]
push eax
call fcn.10091d7d
test eax, eax
jne 0x100ca483
add esi, 4
cmp esi, ebx
jb 0x100ca463
cmp esi, ebx
mov ebx, dword [esp + 0x40]
jae 0x100ca4ab
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 0x100ca4d8
push 9
pop esi
cmp word [edi + 0xbc], si
jne 0x100ca4d8
lea eax, [ecx + 4]
mov dword [esp + 0x38], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], edx
cmp ecx, eax
jae 0x100ca678
lea eax, [esp + 0x20]
mov esi, edx
push eax
lea eax, [esp + 0x1c]
push eax
push dword [ecx]
push dword [esp + 0x40]
call fcn.100cd439
mov edx, dword [esp + 0x18]
cmp edx, dword [esp + 0x20]
jae 0x100ca660
mov ebx, edx
push dword [0x10135544]
lea eax, [esp + 0x98]
push eax
push dword [ebx]
call fcn.10091d7d
test eax, eax
jne 0x100ca531
add ebx, 0x10
cmp ebx, dword [esp + 0x20]
jb 0x100ca50f
cmp ebx, dword [esp + 0x20]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x40]
jae 0x100ca660
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 0x100ca660
dec eax
je 0x100ca60a
dec eax
je 0x100ca5f3
dec eax
je 0x100ca5d4
dec eax
je 0x100ca588
dec eax
jne 0x100ca5a8
cmp dword [esp + 0x30], eax
jne 0x100ca601
mov ebx, 0xfffff441
jmp 0x100ca948
cmp dword [esp + 0x1c], 0
je 0x100ca5be
cmp dword [esp + 0x30], 0
je 0x100ca5a3
mov dword [esp + 0x2c], 1
jmp 0x100ca660
push 3
pop eax
mov ecx, eax
xor eax, eax
inc eax
cmp dword [esp + 0x80], 0
je 0x100ca620
test esi, esi
jne 0x100ca57e
jmp 0x100ca660
mov cl, byte [esp + 0x13]
xor eax, eax
movzx esi, cl
inc eax
shr esi, 2
and esi, eax
jne 0x100ca5ee
test cl, 2
jmp 0x100ca5ec
cmp dword [esp + 0x1c], 0
jne 0x100ca660
movzx esi, byte [esp + 0x13]
xor eax, eax
shr esi, 2
inc eax
and esi, eax
je 0x100ca57e
push 2
pop ecx
jmp 0x100ca5ab
cmp dword [esp + 0x1c], 0
je 0x100ca660
cmp dword [esp + 0x30], 0
je 0x100ca5a8
xor eax, eax
inc eax
mov dword [esp + 0x2c], eax
jmp 0x100ca660
cmp dword [esp + 0x1c], 0
jne 0x100ca660
movzx esi, byte [esp + 0x13]
xor eax, eax
shr esi, 2
inc eax
and esi, eax
jmp 0x100ca5ab
cmp word [esp + 0x24], ax
je 0x100ca62f
test esi, esi
je 0x100ca57e
test byte [esp + 0x13], 2
movzx eax, cx
mov dword [esp + 0x24], eax
movzx eax, word [edx + 0xc]
mov dword [esp + 0x50], eax
je 0x100ca652
push 3
pop eax
cmp cx, ax
je 0x100ca652
mov eax, dword [edx + 8]
jmp 0x100ca655
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 0x100ca4e8
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x24]
movzx eax, dx
dec eax
je 0x100ca937
dec eax
je 0x100ca8f9
dec eax
jne 0x100ca8cb
test ecx, ecx
je 0x100ca937
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.100cae11
test eax, eax
jne 0x100ca321
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 0x100ca72b
cmp eax, 0x5b
jne 0x100ca72e
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 0x100ca738
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.10037730
mov eax, ebx
mov ecx, dword [esp + 0x294]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1011705d
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.100cd439
mov esi, dword [esp + 0x4c]
cmp esi, dword [esp + 0x58]
jae 0x100ca678
push dword [0x10135544]
lea eax, [esp + 0x98]
push eax
push dword [esi]
call fcn.10091d7d
test eax, eax
jne 0x100ca7d2
add esi, 0x10
cmp esi, dword [esp + 0x58]
jb 0x100ca7b0
mov dword [esp + 0x4c], esi
cmp esi, dword [esp + 0x58]
jae 0x100ca678
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 0x100ca8b9
dec eax
je 0x100ca8a1
dec eax
je 0x100ca8b9
dec eax
je 0x100ca8a1
dec eax
je 0x100ca85b
mov ecx, dword [esp + 0x1c]
dec eax
jne 0x100ca67c
test ecx, ecx
je 0x100ca67c
cmp dword [esp + 0x54], eax
je 0x100ca67c
cmp dword [esp + 0x30], eax
je 0x100ca67c
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 0x100ca680
cmp dword [esp + 0x1c], 0
je 0x100ca879
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 0x100ca680
test cl, 2
mov ecx, dword [esp + 0x1c]
je 0x100ca67c
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 0x100ca67c
test cl, 4
je 0x100ca8b9
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 0x100ca869
movsx eax, word [esi]
jmp 0x100ca2dc
dec eax
je 0x100ca8de
dec eax
je 0x100ca57e
dec eax
jne 0x100ca948
xor ebx, ebx
test ecx, ecx
jmp 0x100ca93f
test ecx, ecx
je 0x100ca57e
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x100ca57e
mov ebx, 0xfffff440
jmp 0x100ca948
test ecx, ecx
jne 0x100ca937
mov eax, dword [esp + 0x64]
test eax, eax
je 0x100ca928
push dword [esp + 0x29c]
call fcn.10105292
test eax, eax
jne 0x100ca928
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x6c]
mov dword [eax], ecx
mov eax, dword [esp + 0x60]
jmp 0x100ca1df
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov eax, dword [esp + 0x50]
jmp 0x100ca1df
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 0x100ca915
cmp dword [esp + 0x74], eax
jne 0x100ca6f0
cmp ebx, 0xfffff440
jne 0x100ca6f0
mov esi, dword [esp + 0x34]
test dword [esi + 0x80], 0x4000
jne 0x100ca6f0
push 2
pop eax
cmp dword [edi], eax
jne 0x100ca9e0
test dword [edi + 0xb4], 0x1000
je 0x100ca9e0
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.100ca0c1
cmp dword [ebx], 1
je 0x100ca773
or dword [edi + 0xb4], 0x2000
inc dword [edi + 0x154]
and dword [edi + 0xb8], 0xfffffffc
jmp 0x100ca773
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 0x100ca9eb
sub ecx, edx
sar ecx, 1
cmp ecx, 0xff
jb 0x100caa0c
mov ebx, 0xfffff411
jmp 0x100ca6f2
mov ecx, dword [esp + 0x28]
push ecx
push edi
push 4
push edi
push edi
push ebx
push esi
jmp 0x100ca261