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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1007ed38
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x208
push ebx
xor ebx, ebx
mov dword [esp + 0xc8], edx
mov dword [esp + 0xc], ebx
push esi
mov dword [esp + 8], 0xac9d73df
push edi
mov dword [esp + 0x28], 1
or edi, 0xffffffff
mov dword [esp + 0x34], edi
mov dword [esp + 0xb8], ecx
mov dword [esp + 0x18], ebx
jmp 0x1001a01a
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x54], 0xcce45d76
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 1
jl 0x1001a00a
mov dword [esp + 0x18], ebx
jmp 0x1001a03a
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0xc8], 0x77c83be7
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 1
jl 0x1001a027
cmp dword [esp + 0x14], ebx
jne 0x1001a093
mov eax, ebx
cmp eax, edi
sbb eax, eax
xor edx, edx
neg eax
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
cmp eax, ecx
mov eax, dword [esp + 0xc]
setl dl
xor ecx, ecx
cmp edx, edi
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0xc]
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0xc]
setne cl
sub eax, ecx
sub eax, dword [esp + 0xc]
cmp eax, dword [esp + 0xc]
je 0x1001a093
mov eax, ebx
jmp 0x1001a096
xor eax, eax
inc eax
mov dword [esp + 0x28], eax
mov dword [esp + 0xc], ebx
jmp 0x1001a13f
push 1
lea ecx, [esp + 0x88]
call fcn.10017e4f
mov dword [esp + 0x10], ebx
jmp 0x1001a0cd
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x84]
mov dword [eax + ecx*4], 0xfffffff7
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x1001a0b7
mov eax, dword [esp + 0xc]
cmp dword [esp + eax*4 + 0x54], ebx
jne 0x1001a14b
mov eax, dword [esp + 0x84]
xor ecx, ecx
mov eax, dword [eax]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + eax*4 + 0x54]
mov eax, dword [esp + 0x84]
mov eax, dword [eax]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x84]
cmp dword [eax], 0x4aef
setge cl
neg ecx
mov dword [esp + 0xc8], ecx
lea ecx, [esp + 0x84]
call fcn.10018726
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ebx
jle 0x1001a0a3
jmp 0x1001a157
lea ecx, [esp + 0x84]
call fcn.10018726
mov dword [esp + 0xc], ebx
mov dword [esp + 0x20], 0x25b9b55b
mov dword [esp + 0x10], 0xfe7528ac
mov dword [esp + 0x10], edi
mov dword [esp + 0x34], 0x5d177cce
push 4
mov dword [esp + 0x40], 0xfffffffa
mov dword [esp + 0x14], ebx
pop esi
jmp 0x1001a19b
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1e4], 1
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x1001a188
mov dword [esp + 0x20], 0xffffffec
jmp 0x1001a27b
mov dword [esp + 0x28], 0xbc5021c
mov dword [esp + 0x10], ebx
jmp 0x1001a1cf
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1d4], 1
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x1001a1bc
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
neg ecx
sbb ecx, ecx
neg ecx
add eax, ecx
je 0x1001a210
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
mov eax, dword [esp + 0x28]
setg cl
sub eax, ecx
mov dword [esp + 0x1d8], eax
je 0x1001a210
xor eax, eax
inc eax
jmp 0x1001a212
mov eax, ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], 1
cmp dword [esp + 0x10], ebx
jne 0x1001a265
mov eax, dword [esp + 0x1e4]
xor ecx, ecx
mov eax, dword [esp + 0x34]
cmp eax, 0x65f5
mov eax, edi
setl cl
sub eax, ecx
sub eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
neg eax
sbb eax, eax
xor edx, edx
inc eax
sub ecx, eax
mov eax, dword [esp + 0x34]
cmp eax, ecx
setle dl
sub edx, dword [esp + 0x20]
jne 0x1001a265
mov edx, ebx
jmp 0x1001a268
xor edx, edx
inc edx
mov eax, dword [esp + 0x3c]
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [esp + 0x10], ecx
dec dword [esp + 0x20]
cmp dword [esp + 0x20], 0xffffffe2
jl 0x1001a1ae
mov dword [esp + 0x4c], 0xb42be197
mov dword [esp + 0x40], ebx
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp dword [esp + 0xc], ebx
je 0x1001a2bd
xor ecx, ecx
inc ecx
jmp 0x1001a2bf
mov ecx, ebx
mov eax, dword [esp + 0xc]
add eax, ecx
cmp eax, 0xfffffffd
je 0x1001a2d4
cmp dword [esp + 0xc], ebx
jne 0x1001a2d4
mov eax, ebx
jmp 0x1001a2d7
xor eax, eax
inc eax
add eax, 2
xor ecx, ecx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
imul eax, dword [esp + 0xc]
cmp eax, 8
setne cl
cmp dword [esp + 0xc], ecx
jl 0x1001a828
mov dword [esp + 0x2c], 0xfffffff7
mov dword [esp + 0x2c], edi
mov dword [esp + 0x2c], 0xc3c69aed
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x34], 0x4981
mov dword [esp + 0x10], ebx
jmp 0x1001a332
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x1f4], 0xac453072
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x1001a31f
inc dword [esp + 0x34]
lea ecx, [esp + 0x114]
push 2
call fcn.10017e4f
mov dword [esp + 0x21c], ebx
lea ecx, [esp + 0x160]
mov dword [esp + 0x20], 0xe1757117
push esi
call fcn.10017e4f
mov dword [esp + 0x10], ebx
jmp 0x1001a37f
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x160]
mov dword [eax + ecx*4], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x1001a36d
push 3
mov dword [esp + 0x24], ebx
pop esi
cmp dword [esp + 0x20], 0x1c
jne 0x1001a3ea
mov dword [esp + 0x3c], 0xe1e2c0d3
mov dword [esp + 0x10], 0x51cdcb36
mov eax, dword [esp + 0x3c]
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x10], esi
cmp dword [esp + 0x10], ebx
jl 0x1001a3e4
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x1001a3de
push 1
push 0x12ef
push 0x134d
call dword [0x10674260]
push eax
call dword [0x10674254]
dec dword [esp + 0x10]
jns 0x1001a3ba
inc dword [esp + 0x20]
jmp 0x1001a38c
lea ecx, [esp + 0x160]
call fcn.10018726
push ebx
lea eax, [esp + 0x118]
push eax
lea eax, [esp + 0xd4]
push 0x617b
push eax
call fcn.1001da48
add esp, 0x10
lea ecx, [esp + 0x5c]
push 2
call fcn.10017e4f
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], 0x249aaed6
mov dword [esp + 0x10], ebx
jmp 0x1001a444
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x5c]
mov dword [eax + ecx*4], 0x5d6c
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x1001a431
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x18], 1
jg 0x1001a58c
mov dword [esp + 0xc], 0xfffffffd
mov dword [esp + 0xc], ebx
cmp dword [esp + 0xc], 1
jg 0x1001a4c9
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x3c], 0xefa1e1c5
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x5c]
cmp dword [eax + ecx*4], ebx
jne 0x1001a491
cmp dword [esp + 0x14], 1
jl 0x1001a491
mov ecx, ebx
jmp 0x1001a494
xor ecx, ecx
inc ecx
mov eax, dword [esp + 0xc]
xor edx, edx
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp ecx, eax
setl dl
xor ecx, ecx
imul edx, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
cmp edx, eax
setne cl
sub ecx, dword [edi + 4]
mov dword [esp + 0x3c], ecx
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 1
jle 0x1001a471
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x5c]
cmp dword [eax + ecx*4], ebx
je 0x1001a547
mov eax, dword [esp + 0x18]
xor edx, edx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax]
mov eax, dword [esp + 0x18]
sub ecx, esi
cmp ecx, eax
sete dl
sub edx, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
add eax, 0x10009
add eax, edx
cmp eax, dword [esp + 0xc]
jne 0x1001a547
mov dword [esp + 0x3c], 0x52601c8d
imul eax, dword [esp + 0x3c], 0xb05e
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], 1
cmp dword [esp + 0x14], ebx
jl 0x1001a55b
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x1001a53f
push ebx
call dword [0x10674140]
dec dword [esp + 0x14]
jns 0x1001a52d
jmp 0x1001a55b
mov dword [esp + 0x3c], ebx
xor ecx, ecx
mov eax, dword [esp + 0x18]
cmp eax, 1
setle cl
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x14], 1
jg 0x1001a57a
mov eax, dword [esp + 0x5c]
cmp dword [eax + 4], ebx
jne 0x1001a57a
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 1
jle 0x1001a56a
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 1
jle 0x1001a45a
or edi, 0xffffffff
mov eax, dword [esp + 0x5c]
lea ecx, [esp + 0x5c]
mov eax, dword [eax + 4]
mov dword [esp + 0x18], eax
call fcn.10018726
push ebx
push 0x163
push 0x72a8
call fcn.1001dd70
lea eax, [esp + 0x120]
push eax
lea eax, [esp + 0x5c]
push eax
push 0x71c6
push ebx
push 0x7000
call fcn.1001bf33
add esp, 0x20
mov dword [esp + 0x10], ebx
mov dword [esp + 0x2c], edi
lea ecx, [esp + 0x108]
mov dword [esp + 0x2c], 0xba8b35ed
mov dword [esp + 0x3c], 0xaf9f7c8b
mov dword [esp + 0x2c], 0xa3691f6f
push esi
call fcn.10017e4f
push 3
mov byte [esp + 0x220], 1
mov dword [esp + 0x18], ebx
pop edx
jmp 0x1001a61d
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x1bc], ebx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x1001a60e
mov dword [esp + 0x14], ebx
jmp 0x1001a63f
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x108]
mov dword [eax + ecx*4], 0xe4d8d955
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x1001a629
mov dword [esp + 0x10], 0xa
cmp dword [esp + 0x10], 0xfffffffa
jl 0x1001a809
push 3
pop esi
mov dword [esp + 0x20], 1
lea ecx, [esp + 0x120]
push 2
call fcn.10017e4f
mov byte [esp + 0x21c], 2
mov dword [esp + 0x2c], 8
mov dword [esp + 0x14], ebx
jmp 0x1001a69a
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x1ac], 0xfffffff8
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 4
jl 0x1001a687
mov dword [esp + 0x14], ebx
jmp 0x1001a6bd
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x120]
mov dword [eax + ecx*4], 1
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x1001a6a7
mov dword [esp + 0x20], ebx
cmp dword [esp + 0x20], esi
jg 0x1001a7e3
mov edi, dword [esp + 0x108]
mov dword [esp + 0x34], edi
mov dword [esp + 0x40], 0x7f737a9a
lea ecx, [esp + 0x154]
push 1
call fcn.10017e4f
push 3
lea ecx, [esp + 0x130]
mov byte [esp + 0x220], 3
call fcn.10017e4f
mov dword [esp + 0x14], ebx
jmp 0x1001a722
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x154]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 1
jl 0x1001a70f
push 3
mov dword [esp + 0x18], ebx
pop esi
jmp 0x1001a748
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x12c]
mov dword [eax + ecx*4], 0x13af72b5
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x1001a732
inc dword [edi + 8]
mov edi, dword [esp + 0x12c]
mov eax, dword [edi + 4]
neg eax
jne 0x1001a763
mov eax, dword [esp + 0x3c]
mov eax, dword [esp + 0x20]
xor edx, edx
mov ecx, dword [esp + eax*4 + 0x1ac]
mov eax, dword [esp + 0x1bc]
cmp ecx, eax
mov eax, dword [esp + 0x20]
sete dl
xor ecx, ecx
mov dword [esp + 0x30], edx
mov edx, dword [esp + eax*4 + 0x1ac]
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x30], eax
setl cl
xor eax, eax
cmp edx, ecx
setne al
mov dword [esp + 0x40], eax
mov ecx, eax
mov dword [edi + 4], eax
mov eax, dword [esp + 0x120]
mov dword [eax], ecx
lea ecx, [esp + 0x12c]
call fcn.10018726
lea ecx, [esp + 0x154]
mov byte [esp + 0x21c], 2
call fcn.10018726
inc dword [esp + 0x20]
mov edi, dword [esp + 0x34]
cmp dword [esp + 0x20], esi
jle 0x1001a6dd
lea ecx, [esp + 0x120]
mov byte [esp + 0x21c], 1
call fcn.10018726
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffffa
jge 0x1001a65b
or edi, 0xffffffff
lea ecx, [esp + 0x108]
call fcn.10018726
mov dword [esp + 0x21c], edi
lea ecx, [esp + 0x114]
jmp 0x1001b3fc
push 2
lea ecx, [esp + 0x7c]
call fcn.10017e4f
mov dword [esp + 0x21c], esi
lea ecx, [esp + 0xa0]
mov dword [esp + 0x3c], 0x40bf
push 3
call fcn.10017e4f
push 3
mov dword [esp + 0x24], 6
mov dword [esp + 0x14], ebx
pop esi
jmp 0x1001a877
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xa0]
mov dword [eax + ecx*4], 0x9841b3c6
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jl 0x1001a861
push 2
mov dword [esp + 0x24], ebx
pop edx
jmp 0x1001a90c
mov dword [esp + 0x10], 0x8f69f7fd
mov dword [esp + 0x24], 0xbf9a
mov dword [esp + 0x10], edx
cmp dword [esp + 0x10], ebx
jl 0x1001a8d5
mov dword [esp + 0x28], 0xfffffff7
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0xa0]
cmp dword [eax + ecx*4], ebx
jne 0x1001a8d5
mov dword [esp + 0x28], edx
cmp dword [esp + 0x28], ebx
jl 0x1001a8cf
dec dword [esp + 0x24]
dec dword [esp + 0x28]
jns 0x1001a8c5
dec dword [esp + 0x10]
jns 0x1001a8a3
mov dword [esp + 0x24], ebx
jmp 0x1001a902
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0xa0]
cmp dword [eax + ecx*4], ebx
jne 0x1001a908
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0xa0]
push 2
mov eax, dword [ecx]
mov dword [ecx + edx*4], eax
inc dword [esp + 0x28]
pop edx
cmp dword [esp + 0x24], edx
jle 0x1001a8db
inc dword [esp + 0x20]
cmp dword [esp + 0x20], edx
jle 0x1001a889
lea ecx, [esp + 0xa0]
call fcn.10018726
mov dword [esp + 0x30], 0x597eedf6
mov dword [esp + 0xc], 0xfffffff9
mov dword [esp + 0x18], 0xde9829cb
mov dword [esp + 0x20], 0x1949f0dc
mov dword [esp + 0x30], 0xc7f1223
mov dword [esp + 0x10], ebx
jmp 0x1001a960
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x44], 0xc895
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x1001a950
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x18], eax
mov dword [esp + 0xc], ebx
jmp 0x1001abfc
mov dword [esp + 0x24], 0x26e1
mov dword [esp + 0x34], 0xfffffff6
mov dword [esp + 0x10], 0xe653d3a1
mov dword [esp + 0x14], 0x1fbecdb
mov dword [esp + 0x2c], 0xfffffff8
mov dword [esp + 0x18], ebx
jmp 0x1001ab8c
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], eax
cmp dword [esp + 0x28], ebx
jl 0x1001ab88
mov dword [esp + 0x10], 0xdda31432
lea ecx, [esp + 0xd4]
push eax
call fcn.10017e4f
mov dword [esp + 0x10], ebx
jmp 0x1001aa1c
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xd4]
mov dword [eax + ecx*4], 0x5726b065
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x1001aa06
mov eax, dword [esp + 0x18]
mov ecx, 0xf9af3922
mov eax, dword [esp + eax*4 + 0x44]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
cmp ecx, eax
mov eax, dword [esp + 0x44]
sbb ecx, ecx
xor edx, edx
add ecx, 0x4d15
cmp ecx, eax
mov eax, dword [esp + 0x18]
setne dl
xor ecx, ecx
mov dword [esp + 0x50], edx
mov edx, dword [esp + eax*4 + 0x44]
add edx, dword [esp + 0x44]
imul edx, dword [esp + 0x50]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + eax*4 + 0x44]
cmp eax, edx
sete cl
add ecx, dword [esp + 0x24]
je 0x1001aa9b
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x1001ab6f
push ebx
push ebx
call dword [0x10674168]
jmp 0x1001ab6f
mov dword [esp + 0x14], edi
xor ecx, ecx
mov edx, dword [esp + 0x14]
imul edx, dword [esp + 0x20]
sub edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
cmp edx, eax
mov eax, dword [esp + 0x24]
setl cl
xor edx, edx
cmp eax, ecx
mov eax, dword [esp + 0x34]
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x18]
setl cl
xor edx, edx
imul ecx, ecx, 0x2575
mov eax, dword [esp + eax*4 + 0x44]
cmp eax, ecx
mov eax, dword [esp + 0x20]
setge dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x48]
setg cl
xor edx, edx
cmp ecx, eax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xd4]
setge dl
imul ecx, edx
cmp ecx, dword [eax]
jge 0x1001ab1a
cmp dword [esp + 0x34], ebx
je 0x1001ab1a
xor eax, eax
inc eax
jmp 0x1001ab1c
mov eax, ebx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
mov eax, dword [esp + eax*4 + 0x44]
cmp dword [esp + 0x20], eax
jge 0x1001ab3e
mov eax, dword [esp + 0xd4]
cmp dword [eax], ebx
je 0x1001ab3e
xor edx, edx
inc edx
jmp 0x1001ab40
mov edx, ebx
mov eax, dword [esp + 0x14]
xor ecx, ecx
cmp edx, eax
sete cl
imul ecx, dword [esp + 0xc]
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], eax
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x1001ab6f
push ebx
push ebx
call dword [0x10674154]
lea ecx, [esp + 0xd4]
call fcn.10018726
dec dword [esp + 0x28]
push 1
pop eax
jns 0x1001a9eb
inc dword [esp + 0x18]
cmp dword [esp + 0x18], eax
jle 0x1001a9d5
mov eax, dword [esp + 0x14]
mov ecx, 0xffff
sub eax, dword [esp + 0x48]
sub eax, 0x7caf
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
cmp ecx, eax
mov eax, dword [esp + 0x30]
sbb ecx, ecx
xor edx, edx
inc ecx
cmp eax, ecx
mov eax, dword [esp + 0x44]
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x30]
setge cl
mov dword [esp + 0x2c], ecx
xor ecx, ecx
cmp dword [esp + 0x2c], eax
mov eax, dword [esp + 0x34]
sete cl
add eax, 0xffffb7f3
add eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
inc dword [esp + 0xc]
xor eax, eax
inc eax
cmp dword [esp + 0xc], eax
jle 0x1001a9a4
mov edi, dword [0x10674260]
mov dword [esp + 0x2c], 0xfffffff6
mov dword [esp + 0x24], 2
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], 0x4432
mov eax, dword [esp + 0x24]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x20], eax
jle 0x1001acbc
mov dword [esp + 0x30], 0xcad2086b
lea ecx, [esp + 0x138]
push 2
call fcn.10017e4f
mov dword [esp + 0x14], ebx
jmp 0x1001ac6f
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x138]
mov dword [eax + ecx*4], 0xf27d2703
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x1001ac59
mov dword [esp + 0x14], ebx
jmp 0x1001ac8b
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x1c8], ebx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], esi
jl 0x1001ac7c
mov dword [esp + 0x30], 0x43c4ab2
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x138]
mov dword [eax + 4], ecx
mov dword [esp + 0x1cc], ecx
lea ecx, [esp + 0x138]
call fcn.10018726
jmp 0x1001ad0c
mov dword [esp + 0x20], 0xd
jmp 0x1001ad05
mov dword [esp + 0x14], ebx
jmp 0x1001acfa
mov dword [esp + 0x24], ebx
jmp 0x1001acef
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x1001aceb
push 0x714
call edi
push eax
call dword [0x10674258]
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 0xa
jle 0x1001acd2
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x11
jle 0x1001accc
dec dword [esp + 0x20]
cmp dword [esp + 0x20], 0xb
jg 0x1001acc6
push dword [esp + 0xcc]
lea eax, [esp + 0x180]
mov dword [esp + 0x70], ebx
push eax
lea eax, [esp + 0x174]
mov dword [esp + 0x78], ebx
push eax
xorps xmm0, xmm0
mov dword [esp + 0x80], ebx
push ebx
lea ecx, [esp + 0x7c]
movdqu xmmword [esp + 0x17c], xmm0
call fcn.10019555
mov dword [esp + 0xc], 0xfffffff6
mov dword [esp + 0x2c], 0x66e5dc64
mov dword [esp + 0xc], esi
cmp dword [esp + 0xc], ebx
jl 0x1001ae01
mov dword [esp + 0x28], 0x1571c097
mov dword [esp + 0x30], 0xfffffff6
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x6c]
cmp dword [eax + ecx*4], ebx
je 0x1001add5
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0xc]
sub edx, dword [eax + 8]
mov eax, dword [esp + 0x6c]
mov dword [eax + ecx*4], edx
je 0x1001adbb
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x6c]
cmp dword [eax + 4], ebx
je 0x1001add5
xor edx, edx
inc edx
jmp 0x1001add7
mov edx, ebx
mov eax, dword [esp + 0x28]
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0xc]
setne cl
xor edx, edx
imul ecx, ecx, 0x8572
cmp ecx, eax
setg dl
mov dword [esp + 0x2c], edx
dec dword [esp + 0xc]
jns 0x1001ad66
lea ecx, [esp + 0x6c]
call fcn.10018726
push 0x8ef
push 0x1115
push 0x43a8
push 0x67d7
lea eax, [esp + 0x78]
push eax
push ebx
lea eax, [esp + 0x90]
push 0x18ec
push eax
call fcn.1001c480
mov dword [esp + 0x44], 1
add esp, 0x20
mov dword [esp + 0x30], 0xa6e8f591
mov dword [esp + 0x34], 0x374489b4
mov dword [esp + 0x2c], 0xa88af16d
mov dword [esp + 0x2c], 0xec7e011b
mov dword [esp + 0x10], ebx
jmp 0x1001ae7a
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x144], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x1001ae67
mov eax, dword [esp + 0x24]
xor edx, edx
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x144]
mov eax, dword [esp + 0x148]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x144]
add ecx, 0x4ad744cf
cmp ecx, eax
mov eax, dword [esp + 0x144]
push 2
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x34]
setge cl
mov dword [esp + 0x30], ecx
xor ecx, ecx
cmp dword [esp + 0x30], eax
mov eax, dword [esp + 0x34]
setne cl
xor edx, edx
imul ecx, ecx, 0xffffb58f
cmp ecx, eax
setl dl
xor ecx, ecx
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x28]
cmp eax, 0x7e28
setge cl
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0xc0]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x30], eax
call fcn.10017e4f
xor ecx, ecx
inc ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x34], 0xffffffff
push 2
mov dword [esp + 0x14], ebx
pop edx
cmp dword [esp + 0x10], edx
jge 0x1001af56
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xbc]
mov dword [eax + ecx*4], edx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x1001af3b
xor ecx, ecx
inc ecx
mov dword [esp + 0x20], ecx
cmp dword [esp + 0x20], ebx
jl 0x1001b1a9
mov dword [esp + 0xc], 0xdf0ebf90
mov dword [esp + 0x28], 0x72df2008
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x18], ebx
jmp 0x1001b195
mov dword [esp + 0x24], 0x78f3c34e
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x24], ebx
jl 0x1001b13f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x30], 0xfffffff7
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x1001afe3
push ebx
push ebx
call edi
push eax
call dword [0x1067424c]
push eax
call dword [0x10674064]
xor ecx, ecx
inc ecx
mov dword [esp + 0x10], ecx
cmp dword [esp + 0x10], ebx
jl 0x1001b135
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x14], ebx
jmp 0x1001b0cc
mov dword [esp + 0x30], 0xffffffff
cmp dword [esp + 0xc], ebx
je 0x1001b018
mov eax, ecx
cmp dword [esp + 0x24], ebx
jne 0x1001b01a
mov eax, ebx
mov dword [esp + 0x30], eax
cmp dword [esp + 0x30], ebx
jne 0x1001b02a
cmp dword [esp + 0xc], ebx
je 0x1001b036
cmp dword [esp + 0x24], ebx
je 0x1001b036
cmp dword [esp + 0x14], ebx
jne 0x1001b038
mov ecx, ebx
mov eax, dword [esp + 0xc]
neg ecx
cmp ecx, eax
jle 0x1001b046
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xbc]
mov eax, dword [eax + ecx*4]
dec eax
cmp eax, dword [esp + 0x18]
je 0x1001b069
cmp dword [esp + 0xc], ebx
je 0x1001b069
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
xor edx, edx
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
cmp ecx, eax
mov ecx, 0xbdab6ac3
setl dl
mov dword [esp + 0x30], edx
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0xc]
cmp ecx, eax
mov eax, dword [esp + 0xbc]
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, dword [eax + esi*4]
setl dl
neg edx
cmp edx, 0xbd1a6f32
sbb eax, eax
xor ecx, ecx
neg eax
mov dword [esp + 0x90], eax
inc dword [esp + 0x14]
inc ecx
cmp dword [esp + 0x14], ecx
jle 0x1001b002
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x90]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
sub ecx, eax
mov dword [esp + 0xc], ecx
xor ecx, ecx
mov eax, dword [esp + 0xc]
cmp eax, 0x4d12ea0f
push 1
setne cl
sub ecx, dword [esp + 0x2c]
sub ecx, dword [esp + 0x2c]
mov dword [esp + 0x98], ecx
dec dword [esp + 0x14]
pop ecx
jns 0x1001aff1
dec dword [esp + 0x24]
jns 0x1001afb7
mov eax, dword [esp + 0x24]
xor ecx, ecx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0xc]
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
add edx, 0xc182
cmp edx, eax
setge cl
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0xbc]
mov eax, dword [esp + 0x34]
mov ecx, dword [ecx + edx*4]
sub ecx, eax
mov dword [esp + 0x90], ecx
xor ecx, ecx
inc dword [esp + 0x18]
inc ecx
cmp dword [esp + 0x18], ecx
jle 0x1001af85
dec dword [esp + 0x20]
jns 0x1001af64
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0xbc]
mov dword [esp + 0x18], eax
call fcn.10018726
mov dword [esp + 0x34], ebx
xor ecx, ecx
mov dword [esp + 0x30], 2
inc ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0xc], ebx
jmp 0x1001b1e6
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x58], 0x887e
inc dword [esp + 0xc]
cmp dword [esp + 0xc], ecx
jl 0x1001b1d6
mov dword [esp + 0xc], ebx
jmp 0x1001b205
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x200], 0x2b96ce02
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x1001b1f2
mov dword [esp + 0xc], ebx
jmp 0x1001b225
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x17c], 0xffffffff
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jl 0x1001b212
mov eax, dword [esp + 0x17c]
lea ecx, [esp + 0xe0]
mov eax, dword [esp + 0x17c]
mov eax, dword [esp + 0x34]
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x58]
movdqa xmm0, xmmword [0x10007af0]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
add eax, dword [esp + 0x34]
push dword [esp + 0x68]
neg eax
mov dword [esp + 0xe4], ebx
movdqu xmmword [esp + 0x190], xmm0
sbb eax, eax
mov dword [esp + 0xe8], ebx
neg eax
mov dword [esp + 0xec], ebx
mov dword [esp + 0x30], eax
lea eax, [esp + 0x1a0]
push eax
lea eax, [esp + 0x194]
mov byte [esp + 0x43], bl
push eax
push ebx
call fcn.10019555
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x1001b2c5
push 0x140
push ebx
push ebx
push 0x18e
push ebx
call dword [0x1067420c]
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], 0
je 0x1001b2d7
push ebx
call dword [0x10674244]
lea ecx, [esp + 0xe0]
call fcn.10018726
cmp byte [esp + 0x3b], 0
je 0x1001b2fd
push ebx
push 0x3ea
push 0x4002
call fcn.1001bfbb
add esp, 0xc
mov dword [esp + 0xc], 1
cmp dword [esp + 0xc], ebx
jl 0x1001b3f0
mov dword [esp + 0xec], ebx
mov dword [esp + 0xf0], ebx
mov dword [esp + 0xf4], ebx
mov dword [esp + 0xf8], ebx
mov dword [esp + 0x2c], 0x38991f3
mov dword [esp + 0x50], 0xffffffff
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x40]
cmp dword [ecx + edx*4], eax
je 0x1001b39d
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x78]
cmp dword [eax + ecx*4], ebx
je 0x1001b382
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0xc]
push 0
cmp dword [ecx + edx*4], eax
pop eax
sete al
mov dword [esp + 0xf4], eax
test eax, eax
je 0x1001b382
xor ecx, ecx
inc ecx
jmp 0x1001b384
mov ecx, ebx
xor eax, eax
cmp ecx, 0x4ab1
sete al
imul eax, dword [esp + 0x40]
test eax, eax
je 0x1001b39d
xor esi, esi
inc esi
jmp 0x1001b39f
mov esi, ebx
mov edx, dword [esp + 0xc]
xor ecx, ecx
mov eax, dword [esp + 0x2c]
cmp esi, eax
mov eax, dword [esp + 0x78]
sete cl
cmp ecx, dword [eax + edx*4]
jne 0x1001b3c1
cmp dword [esp + 0x3c], ebx
jne 0x1001b3c1
mov edx, ebx
jmp 0x1001b3c4
xor edx, edx
inc edx
mov eax, dword [esp + 0x3c]
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [esp + 0x50], ecx
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], eax
dec dword [esp + 0xc]
jns 0x1001b30f
or dword [esp + 0x21c], 0xffffffff
lea ecx, [esp + 0x78]
call fcn.10018726
push dword [esp + 0x68]
movdqa xmm0, xmmword [0x10007ad0]
lea eax, [esp + 0x1b0]
push eax
lea eax, [esp + 0x1a4]
mov dword [esp + 0xb4], ebx
push eax
push ebx
lea ecx, [esp + 0xbc]
mov dword [esp + 0xc0], ebx
movdqu xmmword [esp + 0x1ac], xmm0
mov dword [esp + 0xc4], ebx
call fcn.10019555
push 5
pop edi
mov dword [esp + 0x21c], edi
mov edx, dword [esp + 0xac]
mov dword [esp + 0x10], 0x33582f80
mov eax, dword [edx]
sub eax, dword [edx + 8]
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, dword [edx + 4]
setg cl
xor eax, eax
cmp dword [edx + 0xc], ecx
sete al
mov dword [esp + 0x10], eax
mov dword [esp + 0x10], 0xa
jmp 0x1001b5b5
mov dword [esp + 0x18], 0x45c8100c
mov dword [esp + 0x2c], 0x3b839bf5
mov dword [esp + 0x18], ebx
jmp 0x1001b56b
mov dword [esp + 0x24], 4
lea ecx, [esp + 0xfc]
mov dword [esp + 0x2c], 0x5132
push 2
call fcn.10017e4f
mov dword [esp + 0x28], ebx
jmp 0x1001b4df
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0xfc]
mov dword [eax + ecx*4], 0xfffffffd
inc dword [esp + 0x28]
cmp dword [esp + 0x28], 2
jl 0x1001b4c9
mov dword [esp + 0x24], 0x15
jmp 0x1001b533
mov dword [esp + 0x28], 0x710dd013
mov dword [esp + 0x28], ebx
cmp dword [esp + 0x28], 0xffffffe2
jl 0x1001b52f
mov esi, dword [esp + 0xfc]
mov byte [esp + 0x3b], bl
cmp byte [esp + 0x3b], 0
je 0x1001b51d
push ebx
push ebx
call dword [0x1067413c]
mov eax, dword [esp + 0x2c]
mov dword [esi + 4], eax
dec dword [esp + 0x28]
cmp dword [esp + 0x28], 0xffffffe2
jge 0x1001b50a
dec dword [esp + 0x24]
cmp dword [esp + 0x24], 0x13
jge 0x1001b4f0
mov dword [esp + 0x24], ebx
jmp 0x1001b554
mov dword [esp + 0x2c], 0xffffffff
mov dword [esp + 0x2c], 0xfffffff6
inc dword [esp + 0x24]
cmp dword [esp + 0x24], 3
jle 0x1001b540
lea ecx, [esp + 0xfc]
call fcn.10018726
dec dword [esp + 0x18]
cmp dword [esp + 0x18], 0xfffffff5
jl 0x1001b4a5
mov eax, dword [esp + 0x18]
xor edx, edx
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
add eax, 0xc938
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x18]
imul eax, dword [esp + 0x18]
cmp eax, 0x6269
mov eax, dword [esp + 0x18]
setl dl
xor ecx, ecx
cmp eax, edx
setle cl
mov dword [esp + 0x18], ecx
dec dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jge 0x1001b48c
or dword [esp + 0x21c], 0xffffffff
lea ecx, [esp + 0xac]
call fcn.10018726
lea eax, [esp + 0x4c]
push eax
push ebx
push 0x15a2
push 0x641f
call fcn.1001d9b7
mov eax, dword [esp + 0xe0]
mov ecx, 0x3e8
cdq
add esp, 0x10
idiv ecx
mov ecx, dword [esp + 0xb8]
mov edi, edx
mov esi, eax
call fcn.10019f43
mov ecx, dword [esp + 0x214]
add eax, esi
add eax, edi
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret