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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10075753
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x108
mov dword [esp + 0x44], edx
push ebx
mov dword [esp + 4], 9
xor ebx, ebx
mov dword [esp + 0x1c], ebx
push esi
mov dword [esp + 0x14], ebx
push edi
mov dword [esp + 0x20], 0x3b8c105a
mov edi, ecx
mov dword [esp + 0x20], 0x6bc22736
lea ecx, [esp + 0xec]
mov dword [esp + 0x10], 0x245c
mov dword [esp + 0x20], 0x1031c36b
push 1
call fcn.1001737c
lea eax, [esp + 0xf8]
mov dword [esp + 0x11c], ebx
push eax
lea eax, [esp + 0xf0]
mov dword [esp + 0x20], 0x53b
push ebx
push eax
mov edx, 0x20d4
mov ecx, 0x2db4
call fcn.1001c5c8
mov eax, dword [esp + 0x18]
xor edx, edx
mov eax, dword [esp + 0x18]
add esp, 0xc
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], 0x67d9
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
cmp ecx, eax
mov eax, dword [esp + 0xc]
setl dl
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [esp + 0x20], ecx
cmp dword [esp + 0x20], ebx
jne 0x1001c74f
cmp dword [esp + 0x10], ebx
jne 0x1001c74f
mov eax, ebx
jmp 0x1001c752
xor eax, eax
inc eax
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x20]
imul ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
sub eax, ecx
je 0x1001c772
cmp dword [esp + 0x10], ebx
je 0x1001c772
xor ecx, ecx
inc ecx
jmp 0x1001c774
mov ecx, ebx
mov eax, dword [esp + 0xc]
xor edx, edx
add ecx, eax
mov eax, dword [esp + 0xec]
mov dword [eax], ecx
mov eax, dword [esp + 0x1c]
cmp ecx, eax
setg dl
xor eax, eax
cmp edx, 3
setne al
xor ecx, ecx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x24], eax
setl cl
sub ecx, 0x3331e340
je 0x1001c7e9
cmp dword [esp + 0x1c], ebx
je 0x1001c7e9
cmp dword [esp + 0x18], ebx
je 0x1001c7e9
push 0x612f
push 0x15cb
lea eax, [esp + 0x42]
mov dword [esp + 0x24], 0x5ce4ec6f
push eax
mov dword [esp + 0x34], ebx
mov dword [esp + 0x28], ebx
push ebx
mov byte [esp + 0x4a], bl
call fcn.1001f1a0
add esp, 0x10
jmp 0x1001c84c
mov dword [esp + 0x28], 0xfffffffe
mov dword [esp + 0x28], 0x85aa1ede
mov dword [esp + 0x28], 0x81b1d0b8
mov dword [esp + 0xc], 0xf61160dd
mov dword [esp + 0x24], 4
mov dword [esp + 0x28], 1
mov dword [esp + 0x28], 0xc0f86f4c
mov dword [esp + 0x28], 6
mov dword [esp + 0x1c], 0xfffffffc
dec dword [esp + 0x1c]
mov dword [esp + 0xc], ebx
jmp 0x1001c845
cmp dword [esp + 0x24], ebx
jne 0x1001c84c
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 5
jle 0x1001c83b
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1001c86f
push 0x2f6b
push 0x3330
mov edx, 0x4757
xor cl, cl
call fcn.1001c020
pop ecx
pop ecx
or dword [esp + 0x11c], 0xffffffff
lea ecx, [esp + 0xec]
call fcn.10017c12
cmp dword [edi + 0x10], ebx
jne 0x1001c88f
xor al, al
jmp 0x1001d198
mov dword [esp + 0x30], 2
lea ecx, [esp + 0xbc]
push 1
call fcn.1001737c
xor edx, edx
inc edx
mov dword [esp + 0x11c], edx
mov dword [esp + 0x1c], 0x954a4377
mov dword [esp + 0x28], 0x1a7dfae3
mov dword [esp + 0x10], ebx
jmp 0x1001c8db
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xbc]
mov dword [eax + ecx*4], 0xf3b1ad31
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1001c8c5
mov dword [esp + 0x10], ebx
jmp 0x1001c8fa
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xa4], 0xd0cd8a6c
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x1001c8e7
cmp dword [esp + 0x30], ebx
je 0x1001c91c
mov dword [esp + 0x1c], 2
mov dword [esp + 0x1c], 0xb4ffb87
jmp 0x1001ca88
push 2
lea ecx, [esp + 0xb4]
call fcn.1001737c
push 0x3ae4
push 0x16c1
push ebx
lea eax, [esp + 0xbc]
mov byte [esp + 0x128], 2
push eax
lea eax, [esp + 0xa8]
mov dword [esp + 0x28], 0xcbadbefc
push eax
call fcn.1001f2ea
add esp, 0x14
mov dword [esp + 0x30], 1
cmp dword [esp + 0x30], ebx
jl 0x1001ca7c
lea eax, [esp + 0x34]
mov dword [esp + 0x34], 0xffffffff
push ebx
mov dword [esp + 0x24], 0x2535b5b0
push eax
call fcn.1001fc9f
pop ecx
mov dword [esp + 0x38], 1
pop ecx
cmp dword [esp + 0x34], ebx
jl 0x1001ca72
lea eax, [esp + 0xb0]
mov dword [esp + 0x24], 0xffffffff
push eax
lea eax, [esp + 0x38]
mov cl, 1
push eax
lea edx, [esp + 0x38]
call fcn.1001c020
mov eax, dword [esp + 0x3c]
xor esi, esi
mov eax, dword [esp + 0x3c]
inc esi
pop ecx
pop ecx
xor ecx, ecx
cmp eax, esi
mov eax, dword [esp + 0x30]
setle cl
xor edx, edx
neg ecx
cmp ecx, 0x9080
setl dl
add eax, edx
cmp eax, 0x36fb
jl 0x1001c9f0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
xor edx, edx
mov eax, dword [esp + 0x18]
inc ecx
cmp ecx, eax
mov eax, dword [esp + 0x34]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x18]
setg cl
sub ecx, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], ecx
xor ecx, ecx
cmp eax, dword [esp + 0x1c]
setle cl
shl ecx, 2
test ecx, ecx
jne 0x1001ca2d
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0xb0]
mov dword [eax + ecx*4], esi
xor ecx, ecx
mov eax, dword [esp + 0x24]
cmp eax, 0xfffffff9
mov eax, dword [esp + 0xbc]
setge cl
mov dword [eax], ecx
test ecx, ecx
je 0x1001ca5f
cmp dword [esp + 0x20], ebx
je 0x1001ca5f
xor eax, eax
inc eax
jmp 0x1001ca61
mov eax, ebx
mov dword [esp + 0xa8], eax
dec dword [esp + 0x34]
jns 0x1001c99e
dec dword [esp + 0x30]
jns 0x1001c96f
lea ecx, [esp + 0xb0]
call fcn.10017c12
mov eax, dword [esp + 0xbc]
xor ecx, ecx
cmp dword [eax], 0xffffffff
mov eax, dword [esp + 0xa8]
sete cl
cmp ecx, 0xbd28a218
sbb ecx, ecx
xor edx, edx
inc ecx
add eax, ecx
imul ecx, eax, 0xfea2
imul eax, dword [esp + 0xac], 0x49f7
cmp eax, ecx
lea ecx, [esp + 0xbc]
setle dl
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xa8], eax
mov dword [esp + 0x1c], 0x94c655e
or dword [esp + 0x11c], 0xffffffff
call fcn.10017c12
mov eax, dword [esp + 0x50]
lea ecx, [esp + 0xd4]
push 2
mov dword [eax], ebx
call fcn.1001737c
push 4
lea ecx, [esp + 0xcc]
mov dword [esp + 0x120], 3
call fcn.1001737c
push 0x48bd
push 1
push 0x6e6a
lea edx, [esp + 0x4c]
mov byte [esp + 0x128], 4
lea ecx, [esp + 0xe0]
call fcn.1001c5c8
add esp, 0xc
mov dword [esp + 0x40], ebx
jmp 0x1001cb5f
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0xc8]
mov dword [eax + ecx*4], 1
inc dword [esp + 0x40]
cmp dword [esp + 0x40], 4
jl 0x1001cb49
mov esi, dword [esp + 0xd4]
mov dword [esi + 4], ebx
mov dword [esp + 0x24], 0xec79cf18
mov dword [esp + 0x28], 0x6887e0
mov dword [esp + 0x28], 1
mov dword [esp + 0x1c], 0xc73f
mov dword [esp + 0xc], ebx
jmp 0x1001cba2
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x58], ebx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 3
jl 0x1001cb96
mov dword [esp + 0x60], 3
jmp 0x1001cc19
mov dword [esp + 0x4c], 0xfffffffd
cmp dword [esp + 0x60], ebx
je 0x1001cbde
push 0x79fd
lea eax, [esp + 0x50]
mov dword [esp + 0x2c], 0xffffffff
push ebx
push eax
call fcn.100200a5
add esp, 0xc
jmp 0x1001cbf6
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1001cbf0
push ebx
call fcn.1001ff36
pop ecx
cmp dword [esp + 0x24], ebx
jne 0x1001cc15
cmp dword [esi + 4], ebx
jne 0x1001cc07
mov eax, dword [esp + 0x4c]
mov eax, dword [esp + 0x4c]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0xc8]
mov dword [eax + 4], ecx
inc dword [esp + 0x60]
cmp dword [esp + 0x60], 0x1c
je 0x1001cbb3
inc dword [esp + 0x1c]
inc dword [esi + 4]
cmp dword [esi + 4], 0x11
jl 0x1001cb70
lea ecx, [esp + 0xc8]
call fcn.10017c12
or dword [esp + 0x11c], 0xffffffff
lea ecx, [esp + 0xd4]
call fcn.10017c12
cmp dword [edi + 0x14], 0x10
jb 0x1001cc5b
mov ecx, dword [edi]
jmp 0x1001cc5d
mov ecx, edi
push 3
pop esi
cmp dword [edi + 0x14], 0x10
mov dword [esp + 0x48], ecx
jb 0x1001cc6e
mov edx, dword [edi]
jmp 0x1001cc70
mov edx, edi
mov eax, dword [edi + 0x10]
add eax, edx
cmp ecx, eax
je 0x1001d196
mov dword [esp + 0x10], 0xfffffffa
xor edx, edx
mov dword [esp + 0x18], 7
inc edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], 0x4418f7f2
mov dword [esp + 0x28], edx
mov dword [esp + 0xc], ebx
jmp 0x1001ccb6
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x2c], 0x261f
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x1001cca6
mov dword [esp + 0xc], ebx
jmp 0x1001ccd2
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x44], 0xccc89593
inc dword [esp + 0xc]
cmp dword [esp + 0xc], edx
jl 0x1001ccc2
inc dword [esp + 0x2c]
xor ecx, ecx
mov eax, dword [esp + 0x2c]
imul eax, dword [esp + 0x20]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x20]
cmp eax, 0x23703acb
setne cl
sub ecx, dword [esp + 0x10]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
inc dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x2c], ebx
je 0x1001cda9
mov dword [esp + 0x24], ebx
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], ebx
jl 0x1001cddb
push ebx
lea eax, [esp + 0x3f]
mov dword [esp + 0x20], 0x1ce43c7d
push 0x798a
mov dword [esp + 0x28], edx
mov byte [esp + 0x43], bl
push eax
call fcn.1001fee1
mov eax, dword [esp + 0x1c]
add esp, 0xc
xor edx, edx
mov eax, dword [esp + eax*4 + 0x2c]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
inc ecx
cmp ecx, eax
mov eax, dword [esp + 0x1c]
push 1
setl dl
xor ecx, ecx
cmp edx, eax
pop edx
setg cl
mov dword [esp + 0x20], ecx
dec dword [esp + 0x10]
jns 0x1001cd50
jmp 0x1001cddb
mov dword [esp + 0x1c], 0x6104dbc0
mov dword [esp + 0x44], edx
mov eax, dword [esp + 0x44]
imul eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x48]
mov al, byte [eax]
cmp al, 0x30
jl 0x1001d02e
cmp al, 0x39
jg 0x1001d02e
push dword [esp + 0x98]
movdqa xmm0, xmmword [0x10007a20]
lea ecx, [esp + 0x84]
mov eax, 0xd6c0
mov dword [esp + 0x84], ebx
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
lea eax, [esp + 0x114]
push eax
lea eax, [esp + 0x108]
mov dword [esp + 0x14], 0xffffffff
push eax
push ebx
movdqu xmmword [esp + 0x110], xmm0
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], ebx
call fcn.10018a0d
mov dword [esp + 0x11c], 5
mov dword [esp + 0x90], 0xbf3f0790
mov dword [esp + 0xc], ebx
jmp 0x1001cfdb
mov dword [esp + 0x28], 0x8eb0
mov dword [esp + 0x54], ebx
mov eax, dword [esp + 0xc]
cmp dword [esp + eax*4 + 0x70], ebx
je 0x1001cf8b
mov dword [esp + 0x18], 2
mov dword [esp + 0x20], ebx
mov dword [esp + 0x18], esi
cmp dword [esp + 0x18], ebx
jl 0x1001cfc1
mov dword [esp + 0x10], 0x34bf8f0a
mov dword [esp + 0x24], 1
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], esi
jg 0x1001cf7f
mov esi, dword [esp + 0x80]
mov dword [esp + 0x8c], 0x643747c9
xor edx, edx
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + eax*4 + 0x70]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + eax*4 + 0x70]
cmp eax, 0xfffffff7
setge dl
sub edx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setl cl
xor eax, eax
test ecx, ecx
setns al
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xc]
mov eax, dword [esp + eax*4 + 0x70]
cmp dword [esp + 0x1c], eax
je 0x1001cf36
mov eax, dword [esp + 0x8c]
mov eax, dword [esp + 0x20]
xor edx, edx
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
cmp ecx, eax
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x18]
setg dl
sub edx, 0xfffffffc
neg edx
sbb edx, edx
inc edx
sub ecx, edx
sub eax, ecx
mov dword [esi + 8], ecx
add eax, dword [esp + 0x20]
mov dword [esp + 0x54], eax
cmp dword [esi + 0xc], ebx
jne 0x1001cf7c
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jle 0x1001cedb
push 3
pop esi
dec dword [esp + 0x18]
jns 0x1001ceae
jmp 0x1001cfc1
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1001cfa9
push 0x5e2d
push ebx
push 0x79a9
call fcn.1001d4f1
add esp, 0xc
mov byte [esp + 0x17], bl
cmp byte [esp + 0x17], 0
je 0x1001cfc1
push 0x6e07
push ebx
call fcn.1001d1eb
pop ecx
pop ecx
push ebx
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x98]
push eax
call fcn.1001f3cf
add esp, 0xc
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jle 0x1001ce7a
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x80]
or dword [esp + 0x11c], 0xffffffff
mov dword [eax + 8], ecx
lea ecx, [esp + 0x80]
call fcn.10017c12
lea eax, [esp + 0x48]
push eax
push ebx
lea eax, [esp + 0x58]
push eax
push 0x14e1
push 0x7b9f
call fcn.1001fbcd
mov ecx, dword [esp + 0x5c]
add esp, 0x14
inc ecx
jmp 0x1001cc60
mov edi, 0x5d6c05ba
mov dword [esp + 0x3c], edi
mov dword [esp + 0x94], 0x7fa3dfad
mov dword [esp + 0x3c], ebx
jmp 0x1001d133
push edx
lea ecx, [esp + 0x68]
call fcn.1001737c
lea eax, [esp + 0x64]
mov dword [esp + 0x11c], 6
push eax
push 0x2708
push 0x3fd
mov dl, 1
lea ecx, [esp + 0x108]
call fcn.1001c613
mov eax, dword [esp + 0x70]
add esp, 0xc
mov dword [eax], ebx
jmp 0x1001d10e
push esi
lea ecx, [esp + 0xe4]
call fcn.1001737c
mov byte [esp + 0x11c], 7
mov dword [esp + 0x9c], 7
mov dword [esp + 0x18], ebx
jmp 0x1001d0c3
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xe0]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], esi
jl 0x1001d0b1
lea eax, [esp + 0xe0]
push eax
push ebx
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0xac]
push eax
lea eax, [esp + 0x50]
push eax
call fcn.1001ef9e
add esp, 0x18
mov byte [esp + 0x11c], 6
lea ecx, [esp + 0xe0]
call fcn.10017c12
mov eax, dword [esp + 0x64]
inc dword [eax]
mov eax, dword [esp + 0x64]
cmp dword [eax], 0x19
jg 0x1001d08b
or dword [esp + 0x11c], 0xffffffff
lea ecx, [esp + 0x64]
call fcn.10017c12
dec dword [esp + 0x3c]
push 1
pop edx
cmp dword [esp + 0x3c], 0xffffffe2
jle 0x1001d04b
lea eax, [esp + 0x50]
push eax
push ebx
call fcn.1001fd8b
mov dword [esp + 0x20], edi
push ebx
call fcn.1001d4ab
add esp, 0xc
mov dword [esp + 0x18], 0xfffffff2
jmp 0x1001d18a
push 0x25e4
lea eax, [esp + 0xa4]
mov dword [esp + 0xa4], 0xfffffff8
push eax
push ebx
push 0x2638
call fcn.1001f876
add esp, 0x10
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0xffffffe5
jle 0x1001d160
jmp 0x1001c888
mov al, 1
mov ecx, dword [esp + 0x114]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret