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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10084f44
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x120
movdqa xmm0, xmmword [0x10008250]
lea eax, [esp + 0x11c]
push ebx
push esi
push edi
push 2
pop esi
push dword [esp + 0x5c]
xor ebx, ebx
mov dword [esp + 0x48], edx
push eax
lea eax, [esp + 0x120]
mov dword [esp + 0xa0], esi
push eax
mov edi, ecx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xac], 0xfffffffa
lea ecx, [esp + 0x84]
push ebx
movdqu xmmword [esp + 0x128], xmm0
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebx
call fcn.1001a4c0
lea eax, [esp + 0x98]
mov dword [esp + 0x134], ebx
push eax
lea eax, [esp + 0x98]
mov dword [esp + 0xa8], 0xffff
push eax
push 0x2275
lea eax, [esp + 0xac]
mov dword [esp + 0xa0], 0xffffffff
push eax
lea eax, [esp + 0x88]
mov dword [esp + 0x98], 3
push eax
push 0x3b29
lea eax, [esp + 0xbc]
mov dword [esp + 0x9c], 0x7c44d996
push eax
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0xb0]
push eax
push ebx
call fcn.1001d3d3
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0xb0]
push eax
push ebx
call fcn.1001f3be
or dword [esp + 0x168], 0xffffffff
lea ecx, [esp + 0xac]
add esp, 0x34
call fcn.10018e86
cmp dword [edi + 0x10], ebx
jne 0x1001c923
xor al, al
jmp 0x1001d2fa
push 3
lea ecx, [esp + 0xac]
call fcn.10018e04
mov dword [esp + 0x134], 1
mov dword [esp + 0x14], ebx
jmp 0x1001c958
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xa8]
mov dword [eax + ecx*4], 0x7ddc85f7
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x1001c942
mov eax, dword [esp + 0xa8]
mov dword [eax], ebx
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1001c984
push ebx
mov edx, 0x4762
mov ecx, 0x2378
call fcn.1001c571
pop ecx
mov eax, dword [esp + 0xa8]
dec dword [eax]
cmp dword [eax], 0xfffffff4
jg 0x1001c968
or dword [esp + 0x134], 0xffffffff
lea ecx, [esp + 0xa8]
call fcn.10018e86
push 0x21a
lea eax, [esp + 0x48]
push ebx
push eax
call fcn.1001f2c8
add esp, 0xc
lea ecx, [esp + 0xb4]
push 3
call fcn.10018e04
push ebx
push 0x6d91
lea eax, [esp + 0x11c]
mov dword [esp + 0x13c], esi
push eax
lea eax, [esp + 0xc0]
mov dword [esp + 0x28], ebx
push eax
push 0x1424
push 0x3e68
call fcn.1001f950
mov dword [esp + 0x34], esi
add esp, 0x18
cmp dword [esp + 0x1c], ebx
jl 0x1001ca94
mov dword [esp + 0x10], ebx
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1001ca24
push ebx
push 0x6599
call fcn.1001f0c5
pop ecx
pop ecx
mov dword [esp + 0x10], ebx
jmp 0x1001ca84
mov dword [esp + 0x20], 0x60915bb0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xb4]
cmp dword [ecx + eax*4], ebx
jne 0x1001ca8a
cmp dword [ecx + 8], ebx
jne 0x1001ca53
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
xor edx, edx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xb4]
push 2
mov esi, dword [eax + 4]
cmp dword [eax + ecx*4], esi
setl dl
xor eax, eax
cmp edx, esi
pop esi
setl al
sub eax, 0x1a1c0
mov dword [esp + 0x20], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jle 0x1001ca2a
dec dword [esp + 0x1c]
jns 0x1001ca08
or dword [esp + 0x134], 0xffffffff
lea ecx, [esp + 0xb4]
call fcn.10018e86
cmp dword [edi + 0x14], 0x10
jb 0x1001cab2
mov esi, dword [edi]
jmp 0x1001cab4
mov esi, edi
cmp dword [edi + 0x14], 0x10
jb 0x1001cabe
mov ecx, dword [edi]
jmp 0x1001cac0
mov ecx, edi
mov eax, dword [edi + 0x10]
add eax, ecx
cmp esi, eax
je 0x1001d0e6
mov dword [esp + 0x10], 0x7df2f4a8
lea ecx, [esp + 0x6c]
mov dword [esp + 0x24], ebx
push 2
call fcn.10018e04
push ebx
push 0x3481
lea eax, [esp + 0xec]
mov dword [esp + 0x13c], 3
push eax
lea eax, [esp + 0x78]
mov dword [esp + 0x28], 0x9cee
push eax
call fcn.1002039d
mov byte [esp + 0x2b], bl
add esp, 0x10
cmp byte [esp + 0x1b], 0
je 0x1001cb24
push ebx
call fcn.1001fbe0
pop ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x6c]
dec ecx
neg ecx
sbb ecx, ecx
inc ecx
mov dword [eax + 4], ecx
cmp ecx, dword [esp + 0x10]
jle 0x1001cb4d
mov eax, dword [esp + 0x6c]
cmp dword [eax + 4], ebx
je 0x1001cb4d
xor ecx, ecx
inc ecx
jmp 0x1001cb4f
mov ecx, ebx
mov eax, dword [esp + 0x24]
sub ecx, eax
mov eax, 0xfff9
cmp eax, ecx
mov eax, dword [esp + 0x24]
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [esp + 0x24]
sete cl
xor edx, edx
imul ecx, ecx, 0x4856
cmp ecx, eax
mov eax, dword [esp + 0x1c]
setg dl
xor ecx, ecx
cmp edx, eax
setne cl
cmp ecx, dword [esp + 0x1c]
je 0x1001cbc4
lea eax, [esp + 0x8c]
mov dword [esp + 0x20], 0x374fd522
push eax
push 0x51cb
push ebx
mov dword [esp + 0x2c], 0xb0881d
push 0x3822
mov dword [esp + 0x9c], 0xb51f
call fcn.1001d34d
add esp, 0x10
jmp 0x1001cc43
mov dword [esp + 0x24], ebx
jmp 0x1001cc1b
mov dword [esp + 0x10], ebx
jmp 0x1001cc10
push 0x3a2c
lea eax, [esp + 0x70]
xor dl, dl
push eax
lea eax, [esp + 0x2c]
mov ecx, 0x4cf4
push eax
call fcn.1001c7a2
add esp, 0xc
mov dword [esp + 0x1c], ebx
jmp 0x1001cc05
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x6c]
cmp dword [eax + ecx*4], ebx
jne 0x1001cc0c
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 1
jle 0x1001cbf4
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jle 0x1001cbd0
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 1
jle 0x1001cbca
mov dword [esp + 0x24], ebx
jmp 0x1001cc3c
push 1
lea edx, [esp + 0x70]
lea ecx, [esp + 0x28]
call fcn.1001c571
inc dword [esp + 0x28]
pop ecx
cmp dword [esp + 0x24], 2
jl 0x1001cc28
or dword [esp + 0x134], 0xffffffff
lea ecx, [esp + 0x6c]
call fcn.10018e86
mov al, byte [esi]
cmp al, 0x30
jl 0x1001ce04
cmp al, 0x39
jg 0x1001ce04
mov dword [esp + 0x1c], 0xd4e06482
mov dword [esp + 0x30], 0xfffffffe
push 2
mov dword [esp + 0x2c], 0xf086
mov dword [esp + 0x14], ebx
pop ecx
jmp 0x1001cc97
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x54], 7
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x1001cc87
mov dword [esp + 0x10], ebx
jmp 0x1001ccb6
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xe8], 7
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x1001cca3
mov dword [esp + 0x1c], 0xffffffe7
jmp 0x1001cd83
mov dword [esp + 0x10], 0xd925b0e4
mov dword [esp + 0x10], ebx
jmp 0x1001cd74
mov dword [esp + 0x14], 0x887cf2e5
mov dword [esp + 0x9c], 0x3d37a5b7
mov dword [esp + 0x14], 0xffffffec
jmp 0x1001cd69
push 3
lea ecx, [esp + 0xc4]
call fcn.10018e04
lea eax, [esp + 0x100]
mov dword [esp + 0x134], 4
push eax
push 0x7201
push 0x4c23
mov dl, 1
lea ecx, [esp + 0xcc]
call fcn.1001c7a2
add esp, 0xc
lea eax, [esp + 0x9c]
push ebx
push 0x28c0
push eax
lea eax, [esp + 0xcc]
push eax
call fcn.10020334
or dword [esp + 0x144], 0xffffffff
lea ecx, [esp + 0xd0]
add esp, 0x10
call fcn.10018e86
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0xfffffff2
jle 0x1001ccf7
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 8
jne 0x1001ccda
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 0x1d
jne 0x1001ccc9
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x1c], ebx
je 0x1001cdae
mov eax, dword [esp + 0x58]
mov eax, dword [esp + 0x58]
cmp dword [esp + 0x28], eax
jge 0x1001cdb8
cmp dword [esp + 0x58], ebx
jne 0x1001cdb8
mov ecx, ebx
jmp 0x1001cdbb
xor ecx, ecx
inc ecx
mov eax, dword [esp + 0x54]
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x28]
setge dl
xor ecx, ecx
cmp edx, eax
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x30]
setle cl
sub edx, ecx
neg edx
sbb edx, edx
inc edx
sub eax, edx
mov dword [esp + 0xe8], eax
dec dword [esp + 0x30]
mov edx, dword [esp + 0x44]
movsx eax, byte [esi]
imul ecx, dword [edx], 0xa
add ecx, 0xffffffd0
add eax, ecx
inc esi
mov dword [edx], eax
jmp 0x1001cab4
push 1
lea ecx, [esp + 0xf8]
call fcn.10018e04
push 0x1df6
push 0x29e2
lea eax, [esp + 0xfc]
mov dword [esp + 0x13c], 5
push eax
lea eax, [esp + 0xfc]
mov dword [esp + 0x20], 0x81c2900
push ebx
push eax
call fcn.1001d560
add esp, 0x14
mov dword [esp + 0x14], ebx
jmp 0x1001ce64
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x1001ce60
push ebx
call fcn.1001d3af
pop ecx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ebx
jle 0x1001ce4e
or dword [esp + 0x134], 0xffffffff
lea ecx, [esp + 0xf4]
call fcn.10018e86
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0xd8]
push 2
mov dword [eax], ebx
mov dword [esp + 0x18], 0x94592404
call fcn.10018e04
mov dword [esp + 0x134], 6
mov dword [esp + 0x3c], ebx
jmp 0x1001cebb
mov eax, dword [esp + 0x3c]
mov dword [esp + eax*4 + 0x34], 0x24a8c6a5
inc dword [esp + 0x3c]
cmp dword [esp + 0x3c], 2
jl 0x1001ceab
lea eax, [esp + 0xd8]
push eax
push 0x4b48
push 0x7572
lea eax, [esp + 0x48]
push ebx
push eax
call fcn.10020000
add esp, 0x14
mov dword [esp + 0x34], 0xb
jmp 0x1001d0b5
mov dword [esp + 0x10], ebx
xor ecx, ecx
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x30], 0x97bde515
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x10]
cmp eax, 0xcd9d7
setg cl
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x1c]
neg eax
sbb eax, eax
neg eax
cmp eax, 0xa3187110
mov eax, dword [esp + 0x34]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp eax, ecx
setg dl
dec edx
jne 0x1001cf43
cmp dword [esp + 0x34], ebx
jne 0x1001cf43
mov eax, ebx
jmp 0x1001cf46
xor eax, eax
inc eax
imul ecx, dword [esp + 0x34], 0x21df
sub ecx, eax
mov eax, dword [esp + 0x34]
neg ecx
sbb ecx, ecx
inc ecx
add eax, ecx
je 0x1001d013
mov dword [esp + 0x28], 0xd1ed
cmp dword [esp + 0x28], ebx
je 0x1001cfc8
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [esp + 0x14]
cmp eax, 0xfffffff7
setne cl
imul ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x1001cf8c
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x10]
xor edx, edx
mov ecx, dword [esp + 0x34]
imul ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
add ecx, 0xab0c3e5f
cmp ecx, eax
mov eax, dword [esp + 0x34]
setl dl
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x10]
jle 0x1001cfc8
xor ecx, ecx
inc ecx
jmp 0x1001cfca
mov ecx, ebx
xor eax, eax
cmp ecx, 3
setg al
xor ecx, ecx
cmp eax, 0x171c2502
setne cl
add ecx, dword [esp + 0x1c]
imul ecx, dword [esp + 0x38]
test ecx, ecx
je 0x1001cfed
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
xor edx, edx
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x10]
add ecx, eax
mov eax, dword [esp + 0x28]
cmp ecx, eax
setge dl
mov dword [esp + 0x1c], edx
jmp 0x1001d0ab
mov dword [esp + 0x28], 0x36352b72
mov dword [esp + 0x20], 0x6546d79
mov dword [esp + 0x20], 0x9acce304
mov dword [esp + 0x20], 0x51263067
mov eax, dword [esp + 0x34]
add eax, dword [esp + 0x14]
jne 0x1001d047
cmp dword [esp + 0x28], ebx
jne 0x1001d047
mov ecx, ebx
jmp 0x1001d04a
xor ecx, ecx
inc ecx
mov eax, dword [esp + 0x14]
xor edx, edx
mov eax, dword [esp + 0x28]
cmp ecx, 0xfffffffb
setne dl
xor ecx, ecx
cmp eax, edx
setl cl
xor edx, edx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
cmp ecx, eax
setg dl
sub edx, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
dec eax
neg eax
sbb eax, eax
neg eax
sub eax, edx
neg eax
sbb eax, eax
inc eax
imul eax, dword [esp + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], eax
cmp dword [esp + 0x14], ebx
jne 0x1001d0c0
dec dword [esp + 0x34]
cmp dword [esp + 0x34], 0xfffffff4
jle 0x1001ceef
mov eax, dword [esp + 0xd8]
lea ecx, [esp + 0xd8]
mov dword [esp + 0x34], 0x4064
mov dword [eax], 1
call fcn.10018e86
jmp 0x1001c91c
push 1
lea ecx, [esp + 0x64]
call fcn.10018e04
mov dword [esp + 0x134], 7
lea eax, [esp + 0x2c]
mov dword [esp + 0x14], 0xc668
mov dword [esp + 0x50], 2
mov dword [esp + 0x20], 0x9b037144
mov dword [esp + 0x48], 0x99369e1d
push ebx
mov dword [esp + 0x50], 0xd476fc58
push eax
lea eax, [esp + 0x68]
mov dword [esp + 0x28], 0xc89aed29
mov dword [esp + 0x38], 0x78a82fb3
mov dword [esp + 0x28], 0xfb5d6221
push eax
call fcn.1001ef80
add esp, 0xc
mov dword [esp + 0x2c], ebx
jmp 0x1001d168
mov eax, dword [esp + 0x2c]
mov dword [esp + eax*4 + 0x104], 6
inc dword [esp + 0x2c]
cmp dword [esp + 0x2c], 4
jl 0x1001d155
mov dword [esp + 0x2c], ebx
jmp 0x1001d181
mov eax, dword [esp + 0x2c]
mov dword [esp + eax*4 + 0x40], ebx
inc dword [esp + 0x2c]
cmp dword [esp + 0x2c], 1
jl 0x1001d175
mov eax, dword [esp + 0x60]
push 3
mov eax, dword [eax]
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0x108]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x114]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x44], ebx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x54]
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x64]
mov edx, dword [eax]
mov eax, dword [esp + 0x24]
cmp eax, 0x4199
setle cl
xor eax, eax
cmp ecx, edx
setle al
imul eax, eax, 6
add eax, edx
xor edx, edx
imul eax, dword [esp + 0x18]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x64]
cmp ecx, dword [eax]
setle dl
xor ecx, ecx
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x50]
cmp eax, 0x374484a8
setle cl
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x64]
mov edx, dword [eax]
xor eax, eax
test edx, edx
setle al
xor ecx, ecx
sub eax, edx
cmp eax, edx
setge cl
xor eax, eax
cmp ecx, edx
setne al
xor edx, edx
imul eax, eax, 0xa246
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x64]
cmp ecx, dword [eax]
lea ecx, [esp + 0xd0]
setg dl
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x60], 0xffffffff
call fcn.10018e04
mov byte [esp + 0x134], 8
mov dword [esp + 0x14], ebx
jmp 0x1001d2a8
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xcc]
mov dword [eax + ecx*4], 0x373d2ef8
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x1001d292
lea eax, [esp + 0x4c]
push eax
push 0x3dcb
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x60]
push eax
push 0x34f4
push ebx
lea ecx, [esp + 0x64]
push ecx
lea ecx, [esp + 0xec]
push ecx
call fcn.1001edd0
add esp, 0x24
lea ecx, [esp + 0xcc]
call fcn.10018e86
lea ecx, [esp + 0x60]
call fcn.10018e86
mov al, 1
mov ecx, dword [esp + 0x12c]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret