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

Disassembly:
sub esp, 0x9c0
mov eax, dword [0x100a1040]
xor eax, esp
mov dword [esp + 0x9bc], eax
mov eax, dword [esp + 0x9c8]
mov ecx, dword [esp + 0x9d0]
mov edx, dword [esp + 0x9c4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x9d4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x9d8]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x9dc]
push ebx
mov ebx, dword [ecx + 0x740]
mov dword [esp + 0x50], eax
lea eax, [ecx + 0x74c]
push ebp
push esi
mov esi, dword [esp + 0x9d8]
mov ebp, 1
mov dword [esp + 0x68], eax
mov eax, dword [ecx + 0xdc]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x54], esi
mov dword [esp + 0x30], ebx
push edi
mov edi, dword [esp + 0x9f0]
mov dword [esp + 0x70], edi
sub eax, 0
je 0x100112c6
sub eax, ebp
je 0x100112c0
sub eax, ebp
jne 0x10011ca5
mov dword [esp + 0x14], ebx
jmp 0x100112dc
lea eax, [ebx + ebx*8]
cdq
and edx, 0xf
add eax, edx
mov edx, dword [esp + 0x18]
sar eax, 4
add eax, ebx
mov dword [esp + 0x14], eax
xor ecx, ecx
test edx, edx
jle 0x10011346
mov ebx, dword [esp + 0x18]
mov edx, esi
mov ebp, dword [esp + 0x48]
mov edi, edx
add esi, 0x1f40
add edi, 0x1a68
nop word [eax + eax]
mov eax, dword [ebp + ecx*4]
mov dword [esp + ecx*4 + 0x1c], edx
mov dword [esp + ecx*4 + 0xb4], esi
add esi, 0x258
mov dword [esp + ecx*4 + 0xa4], edi
inc ecx
mov eax, dword [eax + 0x830]
add edi, 0x26c
mov dword [edx], eax
add edx, 0xd34
cmp ecx, ebx
jl 0x10011300
mov ebx, dword [esp + 0x34]
mov ebp, 1
mov edi, dword [esp + 0x70]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
cmp dword [eax + 0xdc], 2
je 0x10011426
test edx, edx
jle 0x100113ef
mov ebp, dword [esp + 0x70]
lea eax, [ebx + ebx]
mov esi, dword [esp + 0x28]
mov edi, eax
sub edi, dword [esp + 0x14]
mov ebx, edx
add edi, edi
mov dword [esp + 0x38], eax
sub ebp, esi
nop word [eax + eax]
mov ecx, dword [esp + 0x24]
push eax
mov eax, dword [esi + ebp]
imul eax, dword [esp + 0x60]
lea eax, [ecx + eax*2]
push eax
lea eax, [esp + 0x1d4]
push eax
call fcn.100058b0
mov eax, dword [esi]
lea ecx, [esp + 0x1d8]
push ecx
push dword [eax + 0xdd0]
add eax, 0xc30
push dword [esp + 0x48]
push eax
call fcn.1001b2f0
mov edx, dword [esp + 0x30]
lea eax, [esp + 0x1e8]
push edi
push eax
mov eax, dword [esi]
mov eax, dword [eax]
lea eax, [eax + edx*2]
push eax
call fcn.100058b0
mov eax, dword [esp + 0x60]
lea esi, [esi + 4]
add esp, 0x28
sub ebx, 1
jne 0x10011380
mov edx, dword [esp + 0x18]
mov ebp, 1
mov esi, dword [esp + 0x28]
cmp edx, 1
jle 0x10011402
mov eax, dword [esi + 4]
add eax, 0xc30
jmp 0x10011404
xor eax, eax
push 1
push edx
push eax
mov eax, dword [esi]
add eax, 0xc30
push eax
call fcn.1001b6d0
add esp, 0x10
test eax, eax
je 0x10011477
mov eax, 0x3000
jmp 0x100131cd
mov esi, dword [esp + 0x28]
test edx, edx
jle 0x10011477
mov eax, dword [esp + 0x14]
lea ebp, [ebx + ebx]
mov ebx, edi
mov edi, edx
sub ebx, esi
lea ecx, [eax + eax]
mov dword [esp + 0x38], ecx
mov eax, dword [esi + ebx]
imul eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x24]
push ebp
lea eax, [edx + eax*2]
push eax
mov eax, dword [esi]
mov eax, dword [eax]
add eax, ecx
push eax
call fcn.100058b0
mov ecx, dword [esp + 0x44]
lea esi, [esi + 4]
add esp, 0xc
sub edi, 1
jne 0x10011442
mov esi, dword [esp + 0x28]
mov ebp, 1
mov ebx, dword [esp + 0x18]
xor edx, edx
test ebx, ebx
jle 0x1001149c
mov eax, dword [esi + edx*4]
xor ecx, ecx
cmp dword [eax + 0xc30], 2
sete cl
mov dword [esp + edx*4 + 0x9c], ecx
inc edx
cmp edx, ebx
jl 0x10011481
xor esi, esi
test ebx, ebx
jle 0x10011580
mov ebp, dword [esp + 0x6c]
nop word [eax + eax]
cmp dword [esp + esi*4 + 0x9c], 0
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + esi*4 + 0x1c]
mov eax, dword [edx + 0x740]
je 0x100114fa
cdq
mov edi, ecx
and edx, 7
mov dword [esp + esi*4 + 0x74], ebp
add eax, edx
mov dword [esp + esi*4 + 0x64], 8
sar eax, 3
mov edx, ecx
mov dword [esp + esi*4 + 0x8c], eax
mov ebx, ecx
mov dword [esp + esi*4 + 0x7c], 0xf
mov eax, ecx
mov dword [esp + 0x10], ecx
jmp 0x10011521
mov dword [esp + esi*4 + 0x74], edx
mov edx, ecx
mov dword [esp + esi*4 + 0x8c], eax
mov edi, edx
mov dword [esp + esi*4 + 0x64], 1
mov ebx, edx
mov dword [esp + esi*4 + 0x7c], 0x3c
mov eax, edx
mov dword [esp + 0x10], edx
add eax, 0x5a4
mov dword [esp + esi*4 + 0x84], eax
mov eax, dword [esp + 0x10]
add eax, 0x1e4
mov dword [esp + esi*4 + 0xc4], eax
lea eax, [ebx + 0xa54]
mov ebx, dword [esp + 0x18]
mov dword [esp + esi*4 + 0xd8], eax
lea eax, [edi + 0x3c4]
mov dword [esp + esi*4 + 0xbc], eax
lea eax, [edx + 0x784]
mov dword [esp + esi*4 + 0xd0], eax
lea eax, [ecx + 4]
mov dword [esp + esi*4 + 0xac], eax
inc esi
cmp esi, ebx
jl 0x100114b0
mov ebp, 1
mov ecx, dword [esp + 0x9c]
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x38], ecx
test ebx, ebx
jle 0x10011caf
mov edi, dword [esp + 0x34]
nop dword [eax]
mov esi, dword [esp + 0x28]
lea ebx, [eax*4]
mov edx, dword [esp + ebx + 0x74]
mov ecx, dword [esp + ebx + 0x1c]
mov eax, dword [ebx + esi]
cmp dword [eax + 0xdd0], 0
je 0x100115d0
mov eax, dword [edx + 8]
mov dword [ecx + 0xd2c], eax
mov eax, dword [edx + 0x1b8]
jmp 0x100115df
mov eax, dword [edx + 4]
mov dword [ecx + 0xd2c], eax
mov eax, dword [edx + 0x1b4]
mov ecx, dword [esp + ebx + 0x1c]
mov dword [ecx + 0xd30], eax
mov eax, dword [edx + 0xdc]
mov ecx, dword [ebx + esi]
cmp eax, 2
jne 0x10011628
lea eax, [ecx + 4]
push eax
push 2
lea eax, [esp + 0xd4]
push eax
push edi
lea eax, [ecx + 0xc38]
push eax
push dword [ecx + 0xc34]
mov eax, dword [esp + ebx + 0x34]
push dword [ecx + 0xc30]
push dword [eax]
push dword [ecx]
call fcn.1001be10
jmp 0x10011659
push eax
lea eax, [esp + 0xd0]
push eax
push edi
lea eax, [ecx + 0xc04]
push eax
lea eax, [ecx + 0xc38]
push eax
push dword [ecx + 0xc34]
mov eax, dword [esp + ebx + 0x34]
push dword [ecx + 0xc30]
push dword [eax]
push dword [ecx]
call fcn.1001bcc0
add esp, 0x24
test eax, eax
jne 0x10011ca5
mov eax, dword [esp + ebx + 0x64]
mov dword [esp + 0x2c], eax
test eax, eax
jle 0x10011762
mov eax, dword [esp + ebx + 0x8c]
xor edi, edi
nop dword [eax]
mov edx, dword [esp + ebx + 0x1c]
mov ecx, dword [edx + 0xd30]
sub eax, ecx
shl eax, 2
add ecx, edi
push eax
mov eax, dword [edx]
lea eax, [eax + ecx*4]
push eax
call fcn.10005890
mov eax, dword [esp + 0x44]
add esp, 8
cmp dword [eax + 0xdc], 0
je 0x1001170f
mov eax, dword [esp + ebx + 0x1c]
cmp dword [eax + 0xd30], 6
jl 0x1001170f
xor esi, esi
nop dword [eax]
mov eax, dword [esi*4 + 0x10070188]
mov dword [esp + 0x44], eax
mov eax, dword [esp + ebx + 0x1c]
mov ecx, dword [eax + 0xd30]
mov eax, dword [eax]
add ecx, esi
add ecx, edi
mov eax, dword [eax + ecx*4 - 0x18]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
imul dword [esp + 0x44]
shl edx, 1
mov dword [esp + 0x4c], edx
mov ecx, dword [esp + ebx + 0x1c]
mov eax, dword [esp + 0x4c]
mov edx, dword [ecx + 0xd30]
mov ecx, dword [ecx]
add edx, esi
add edx, edi
inc esi
mov dword [ecx + edx*4 - 0x18], eax
cmp esi, 6
jl 0x100116c0
mov ebx, dword [esp + ebx + 0x1c]
xor edx, edx
mov esi, dword [ebx + 0xd30]
test esi, esi
jle 0x1001173f
lea ecx, [edi*4]
cmp ebp, 1
jne 0x1001173f
mov eax, dword [ebx]
cmp dword [ecx + eax], 0
jne 0x1001173d
inc edx
add ecx, 4
cmp edx, esi
jl 0x10011726
jmp 0x1001173f
xor ebp, ebp
mov ecx, dword [esp + 0x10]
lea ebx, [ecx*4]
mov eax, dword [esp + ebx + 0x8c]
add edi, eax
sub dword [esp + 0x2c], 1
jne 0x10011680
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + ebx + 0x1c]
lea esi, [edi + edi]
mov eax, dword [esp + 0xcc]
push esi
mov dword [ecx + 0xc34], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [ebx + eax]
mov ecx, dword [eax]
lea eax, [esi + ecx]
push eax
push ecx
call fcn.100058b0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
sub eax, edi
add eax, eax
push eax
mov eax, dword [esp + 0x80]
mov eax, dword [ebx + eax]
imul eax, dword [esp + 0x6c]
sub eax, dword [esp + 0x24]
add eax, esi
lea eax, [ecx + eax*2]
push eax
mov eax, dword [esp + 0x3c]
mov eax, dword [ebx + eax]
mov eax, dword [eax]
add eax, esi
push eax
call fcn.100058b0
mov eax, dword [esp + 0x28]
add esp, 0x18
mov ecx, dword [esp + 0x18]
inc eax
mov dword [esp + 0x10], eax
cmp eax, ecx
jl 0x100115a0
test ebp, ebp
jne 0x10011caf
xor eax, eax
mov esi, 0x1f
mov dword [esp + 0x70], esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x34], eax
xor edi, edi
cmp dword [esp + eax*4 + 0x64], edi
jle 0x100118d0
mov edx, dword [esp + eax*4 + 0x74]
lea ecx, [esp + 0x84]
lea ecx, [ecx + eax*4]
add edx, 0xc
mov dword [esp + 0x10], ecx
xor ebp, ebp
lea ecx, [esp + 0x7c]
mov dword [esp + 0x54], edx
lea ecx, [ecx + eax*4]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + eax*4 + 0x1c]
mov eax, dword [esp + eax*4 + 0x8c]
shl eax, 2
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x2c]
mov ebx, dword [ecx + 0xd2c]
mov eax, dword [eax]
shl eax, 2
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov dword [esp + 0x5c], eax
push ebx
push eax
mov eax, dword [ecx]
push edx
add eax, ebp
push eax
call fcn.1001cad0
mov eax, dword [esp + 0x44]
add esp, 0x10
mov ecx, dword [esp + eax*4 + 0x1c]
mov dword [esp + 0x44], ecx
mov ebx, dword [ecx + 0xd2c]
test ebx, ebx
jle 0x100118a9
mov eax, dword [esp + 0x2c]
mov edx, ebx
mov ecx, dword [eax]
mov eax, dword [esp + 0x10]
imul ecx, edi
mov eax, dword [eax]
lea ecx, [eax + ecx*4]
nop
mov eax, dword [ecx]
lea ecx, [ecx + 4]
cmp esi, eax
cmovl eax, esi
mov esi, eax
sub edx, 1
jne 0x10011890
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x70], esi
mov edx, dword [esp + 0x34]
inc edi
mov eax, dword [esp + 0x5c]
add eax, dword [esp + 0x4c]
add ebp, dword [esp + 0x14]
cmp edi, dword [esp + edx*4 + 0x64]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x5c], eax
jl 0x10011855
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
inc eax
mov dword [esp + 0x34], eax
cmp eax, ecx
jl 0x100117f4
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov dword [esp + 0x10], ecx
nop word [eax + eax]
mov ebp, dword [esp + ecx*4 + 0x64]
test ebp, ebp
jle 0x100119b5
mov eax, dword [esp + ecx*4 + 0x7c]
lea edx, [esi - 4]
mov edi, dword [esp + ecx*4 + 0xc4]
xor ebx, ebx
mov esi, dword [esp + 0x24]
mov dword [esp + 0x44], edx
lea edx, [esp + 0x1c]
lea edx, [edx + ecx*4]
shl eax, 2
mov dword [esp + 0x54], edx
mov edx, dword [esp + ecx*4 + 0x74]
mov ecx, dword [esp + ecx*4 + 0x8c]
add edx, 0xc
shl ecx, 2
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x34], edx
mov eax, dword [esp + ecx*4 + 0xbc]
mov ecx, dword [esp + ecx*4 + 0x84]
sub eax, edi
sub ecx, edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x2c], ecx
nop dword [eax]
push dword [esp + 0x44]
mov ecx, dword [esp + 0x58]
add eax, edi
push eax
mov eax, dword [esp + 0x34]
push edi
mov ecx, dword [ecx]
add eax, edi
push dword [ecx + 0xd2c]
push edx
push eax
mov eax, dword [ecx]
add eax, ebx
push eax
call fcn.1001cb60
mov edx, dword [esp + 0x50]
add esp, 0x1c
cmp esi, eax
cmovg eax, esi
add edi, dword [esp + 0x5c]
add ebx, dword [esp + 0x4c]
mov esi, eax
mov eax, dword [esp + 0x14]
sub ebp, 1
jne 0x10011960
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x70]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, eax
jl 0x100118f0
mov eax, dword [esp + 0x24]
test eax, eax
je 0x100119f9
jns 0x100119ce
not eax
bsr eax, eax
mov ecx, 0x1f
mov dword [esp + 0x30], 0
setne dl
sub ecx, eax
test dl, dl
mov eax, 0x20
cmovne eax, ecx
lea ecx, [eax - 1]
sar ecx, 1
add ecx, 0xfffffffc
add ecx, esi
jmp 0x100119fe
mov ecx, 0x1f
cmp dword [esp + 0x38], 0
je 0x10011a06
dec ecx
mov eax, dword [esp + 0x1c]
cmp esi, ecx
cmovl ecx, esi
mov ebx, dword [eax + 0xc34]
add ebx, 3
cmp ecx, ebx
cmovle ebx, ecx
xor ebp, ebp
mov eax, ebx
mov dword [esp + 0x24], ebp
shl eax, 0x1a
xor ecx, ecx
mov dword [esp + 0x14], eax
movd xmm1, ebx
mov dword [esp + 0x5c], ecx
nop word [eax + eax]
mov edx, dword [esp + ebp*4 + 0x64]
mov eax, dword [esp + ebp*4 + 0x7c]
mov dword [esp + 0x70], edx
test edx, edx
jle 0x10011b65
lea ecx, [esp + 0xac]
lea ecx, [ecx + ebp*4]
mov dword [esp + 0x44], ecx
lea esi, [esp + 0xc4]
lea ecx, [esp + 0xbc]
lea ecx, [ecx + ebp*4]
mov dword [esp + 0x54], ecx
lea esi, [esi + ebp*4]
xor ecx, ecx
mov dword [esp + 0x40], esi
shl eax, 2
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], eax
nop dword [eax + eax]
mov eax, dword [esp + ebp*4 + 0x1c]
xor edi, edi
cmp dword [eax + 0xd2c], edi
jle 0x10011b4c
mov eax, dword [esp + 0x54]
mov dword [esp + 0x4c], 0x2940a10
mov ebp, dword [eax]
mov eax, dword [esi]
lea esi, [eax + ecx]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + ecx + 0x84]
mov ecx, dword [esp + 0x44]
sub edx, eax
mov dword [esp + 0x50], edx
mov ecx, dword [ecx]
sub ecx, eax
sub ebp, eax
mov dword [esp + 0x34], ecx
mov eax, dword [esi + edx]
mov ecx, 0
sub eax, 4
cmovs eax, ecx
mov ecx, 0x1f
sub eax, ebx
add eax, eax
cmp eax, ecx
cmovl ecx, eax
mov eax, dword [esi]
test ecx, ecx
js 0x10011afa
sar eax, cl
jmp 0x10011afe
neg ecx
shl eax, cl
mov dword [esi], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
imul dword [esp + 0x4c]
shl edx, 1
mov dword [esp + 0x10], edx
mov ecx, dword [esp + 0x34]
inc edi
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x50]
mov dword [ecx + esi], eax
mov eax, dword [esp + 0x14]
add dword [esi + ebp], eax
add esi, 4
mov eax, dword [esp + 0x24]
mov eax, dword [esp + eax*4 + 0x1c]
cmp edi, dword [eax + 0xd2c]
jl 0x10011ad4
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x70]
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x40]
add ecx, dword [esp + 0x30]
sub edx, 1
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x70], edx
jne 0x10011a90
mov ecx, dword [esp + 0x5c]
inc ebp
add ecx, 4
mov dword [esp + 0x24], ebp
mov dword [esp + 0x5c], ecx
cmp ebp, dword [esp + 0x18]
jl 0x10011a40
test ebx, ebx
je 0x10011dcf
xor edx, edx
mov dword [esp + 0x14], edx
nop dword [eax]
mov ecx, dword [esp + edx*4 + 0x1c]
xor ebp, ebp
mov eax, dword [esp + edx*4 + 0x8c]
mov esi, dword [ecx + 0xd30]
mov edi, dword [ecx]
mov dword [esp + 0x30], esi
cmp dword [esp + edx*4 + 0x64], ebp
jle 0x10011c89
shl eax, 2
mov dword [esp + 0x2c], eax
nop word [eax + eax]
xor edx, edx
test esi, esi
jle 0x10011c2c
cmp esi, 0x10
jb 0x10011c1e
mov eax, esi
and eax, 0x8000000f
jns 0x10011bd9
dec eax
or eax, 0xfffffff0
inc eax
mov ecx, esi
sub ecx, eax
lea eax, [edi + 0x20]
movups xmm0, xmmword [eax - 0x20]
add edx, 0x10
lea eax, [eax + 0x40]
pslld xmm0, xmm1
movups xmmword [eax - 0x60], xmm0
movups xmm0, xmmword [eax - 0x50]
pslld xmm0, xmm1
movups xmmword [eax - 0x50], xmm0
movups xmm0, xmmword [eax - 0x40]
pslld xmm0, xmm1
movups xmmword [eax - 0x40], xmm0
movups xmm0, xmmword [eax - 0x30]
pslld xmm0, xmm1
movups xmmword [eax - 0x30], xmm0
cmp edx, ecx
jl 0x10011be0
mov eax, dword [esp + 0x2c]
cmp edx, esi
jge 0x10011c2c
mov ecx, ebx
shl dword [edi + edx*4], cl
inc edx
cmp edx, esi
jl 0x10011c22
mov ecx, dword [esp + 0x14]
xor edx, edx
add edi, eax
mov ecx, dword [esp + ecx*4 + 0x1c]
cmp dword [ecx + 0xd2c], edx
jle 0x10011c7a
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + eax*4 + 0x84]
mov eax, dword [esp + eax*4 + 0x7c]
imul eax, ebp
lea eax, [ecx + eax*4]
nop dword [eax]
sub dword [eax], ebx
lea eax, [eax + 4]
mov ecx, dword [esp + esi*4 + 0x1c]
inc edx
cmp edx, dword [ecx + 0xd2c]
jl 0x10011c60
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
inc ebp
cmp ebp, dword [esp + edx*4 + 0x64]
jl 0x10011bc0
sub dword [ecx + 0xc34], ebx
inc edx
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x14], edx
cmp edx, ebp
jl 0x10011b90
jmp 0x10011dd3
mov eax, 0x3010
jmp 0x100131cd
mov ebp, dword [esp + 0x18]
xor ecx, ecx
mov dword [esp + 0x24], ecx
test ebp, ebp
jle 0x10011dd3
xor edi, edi
xor ebx, ebx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x10], ebx
nop dword [eax]
mov eax, dword [esp + ecx*4 + 0x1c]
xor edx, edx
mov dword [esp + 0x2c], edx
mov dword [eax + 0xc34], 0
cmp dword [esp + ecx*4 + 0x64], edx
jle 0x10011db2
lea eax, [esp + 0xac]
lea ebx, [esp + 0xc4]
lea ebp, [esp + 0xbc]
lea eax, [eax + ecx*4]
lea ebx, [ebx + ecx*4]
mov dword [esp + 0x30], eax
lea ebp, [ebp + ecx*4]
mov eax, dword [esp + ecx*4 + 0x1c]
xor esi, esi
cmp dword [eax + 0xd2c], esi
jle 0x10011d9b
mov eax, dword [esp + 0x10]
mov ecx, dword [ebx]
mov ebx, dword [ebp]
mov edi, dword [esp + edi + 0x84]
sub ebx, ecx
mov eax, dword [esp + eax + 0x7c]
sub edi, ecx
imul eax, edx
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x30]
mov ebp, dword [eax]
sub ebp, ecx
mov ecx, dword [esp + 0x24]
nop dword [eax]
mov dword [edx + edi], 0
lea edx, [edx + 4]
mov dword [edx - 4], 0
inc esi
mov dword [ebx + edx - 4], 0x80000000
mov dword [edx + ebp - 4], 0
mov eax, dword [esp + ecx*4 + 0x1c]
cmp esi, dword [eax + 0xd2c]
jl 0x10011d50
mov edx, dword [esp + 0x2c]
lea ebx, [esp + 0xc4]
mov edi, dword [esp + 0x5c]
lea ebp, [esp + 0xbc]
lea ebx, [ebx + ecx*4]
lea ebp, [ebp + ecx*4]
inc edx
mov dword [esp + 0x2c], edx
cmp edx, dword [esp + ecx*4 + 0x64]
jl 0x10011d11
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
inc ecx
add edi, 4
add ebx, 4
mov dword [esp + 0x24], ecx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x10], ebx
cmp ecx, ebp
jl 0x10011cd0
jmp 0x10011dd3
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x2c], ebx
cmp ebp, 1
jl 0x10011e09
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
cmp dword [eax + 0xdd0], 0
je 0x10011e09
mov eax, dword [esp + 0xa4]
mov dword [eax + 4], 0
mov dword [eax + 8], 0
jmp 0x100123ec
xor esi, esi
test ebp, ebp
jle 0x10011e59
lea edi, [esp + 0x100]
cmp dword [esp + esi*4 + 0x9c], 0
jne 0x10011e51
mov eax, dword [esp + esi*4 + 0x74]
mov ecx, dword [esp + esi*4 + 0x1c]
push dword [eax + 0x73c]
add eax, 0xc
push eax
push dword [ecx + 0xd2c]
push edi
push dword [esp + esi*4 + 0xcc]
push dword [esp + esi*4 + 0x98]
push dword [ecx]
call fcn.10020b00
add esp, 0x1c
inc esi
add edi, 0x66
cmp esi, ebp
jl 0x10011e16
mov eax, dword [esp + 0x3c]
cmp dword [eax + 0x5fc], 0
jne 0x10011e8f
mov eax, dword [esp + 0x6c]
cmp dword [eax + 0x5fc], 0
jne 0x10011e8f
mov eax, dword [esp + 0x58]
add eax, 0x1a68
push 0x4d8
push eax
call fcn.10005890
add esp, 8
jmp 0x100123ec
xor eax, eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
xorps xmm0, xmm0
mov dword [esp + 0x14], eax
mov dword [esp + 0x58], eax
movups xmmword [esp + 0xe0], xmm0
movups xmmword [esp + 0xf0], xmm0
test ebp, ebp
jle 0x10011f70
mov ebp, dword [esp + eax*4 + 0x64]
xor esi, esi
test ebp, ebp
jle 0x10011f5b
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + eax*4 + 0x74]
mov edx, dword [esp + eax*4 + 0xa4]
lea ebx, [ebx + eax*4]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x30], ebx
lea ebx, [esp + 0x1c]
lea ebx, [ebx + eax*4]
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], ebx
lea ebx, [edi + eax*4]
mov dword [esp + 0x50], ebx
xor edi, edi
mov ebx, dword [esp + eax*4 + 0x8c]
shl ebx, 2
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
push dword [eax + 0xc30]
mov eax, dword [esp + 0x44]
push esi
mov eax, dword [eax]
mov eax, dword [eax]
add eax, edi
push eax
mov eax, dword [esp + 0x5c]
push dword [ecx]
mov eax, dword [eax]
add eax, 0x120
push eax
lea eax, [ecx + 0x5bc]
push eax
push edx
call fcn.1001fac0
mov ecx, dword [esp + 0x70]
inc esi
mov edx, dword [esp + 0x60]
add esp, 0x1c
add edi, ebx
cmp esi, ebp
jl 0x10011f12
mov eax, dword [esp + 0x58]
mov ebp, dword [esp + 0x18]
inc eax
mov dword [esp + 0x58], eax
cmp eax, ebp
jl 0x10011ec4
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0xa4]
cmp ebp, 2
jne 0x10011fbf
mov ecx, dword [esp + 0x28]
lea eax, [ebx + 0x5bc]
push eax
mov eax, dword [ecx]
push dword [eax + 0xc30]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x50]
push dword [eax + 0xc30]
mov eax, dword [ecx]
add eax, 0x120
push eax
mov eax, dword [ecx + 4]
add eax, 0x120
push eax
push esi
push dword [esp + 0xc0]
call fcn.10020220
add esp, 0x1c
jmp 0x10011fc8
cmp ebp, 1
jl 0x10012035
mov edi, dword [esp + 0x64]
xor edx, edx
test edi, edi
jle 0x10012035
xor ecx, ecx
cmp dword [esp + 0x38], 0
je 0x10011ffe
cmp dword [ecx + esi + 4], 0
jne 0x10012021
cmp dword [ecx + esi + 8], 0
jne 0x10012021
mov eax, dword [esp + ebp*4 + 0xa0]
cmp dword [ecx + eax + 4], 0
jne 0x10012021
cmp dword [ecx + eax + 8], 0
jmp 0x1001201b
cmp dword [esi + 4], 0
jne 0x10012021
cmp dword [esi + 8], 0
jne 0x10012021
mov eax, dword [esp + ebp*4 + 0xa0]
cmp dword [eax + 4], 0
jne 0x10012021
cmp dword [eax + 8], 0
jne 0x10012021
xor eax, eax
jmp 0x10012026
mov eax, 1
mov dword [esp + edx*4 + 0xe0], eax
add ecx, 0x10
inc edx
cmp edx, edi
jl 0x10011fd4
xor ebx, ebx
test ebp, ebp
jle 0x100120c8
nop
cmp dword [esp + 0xe0], 0
je 0x100120bf
cmp dword [esp + ebx*4 + 0x9c], 0
jne 0x100120bf
mov ebp, dword [esp + ebx*4 + 0x74]
xor edi, edi
cmp dword [ebp + 0x1b4], edi
jle 0x1001208f
xor edx, edx
xor esi, esi
nop
mov eax, dword [esp + ebx*4 + 0x1c]
lea edx, [edx + 4]
inc edi
lea esi, [esi + 4]
mov ecx, dword [eax]
mov eax, dword [edx + ecx - 4]
sar eax, 1
mov dword [esi + ecx - 4], eax
cmp edi, dword [ebp + 0x1b4]
jl 0x10012070
mov ecx, dword [esp + ebx*4 + 0x1c]
xor eax, eax
cmp dword [ecx + 0xd2c], eax
jle 0x100120b5
mov edx, dword [esp + ebx*4 + 0xac]
sar dword [edx + eax*4], 2
inc eax
mov ecx, dword [esp + ebx*4 + 0x1c]
cmp eax, dword [ecx + 0xd2c]
jl 0x100120a4
inc dword [ecx + 0xc34]
mov ebp, dword [esp + 0x18]
inc ebx
cmp ebx, ebp
jl 0x10012040
xor eax, eax
mov dword [esp + 0x10], eax
test ebp, ebp
jle 0x100121d9
xor ecx, ecx
mov dword [esp + 0x24], ecx
nop dword [eax]
xor esi, esi
cmp dword [esp + eax*4 + 0x64], esi
jle 0x100121c5
mov edi, dword [esp + 0x48]
lea ecx, [esp + 0x7c]
mov ebp, dword [esp + eax*4 + 0x8c]
lea ecx, [ecx + eax*4]
mov ebx, dword [esp + eax*4 + 0x74]
mov edx, dword [esp + eax*4 + 0xa4]
mov dword [esp + 0x50], ecx
lea ecx, [edi + eax*4]
xor edi, edi
mov dword [esp + 0x30], ecx
shl ebp, 2
mov dword [esp + 0x40], ebp
nop dword [eax]
mov ecx, dword [esp + eax*4 + 0x1c]
mov ebp, dword [esp + 0x28]
mov eax, dword [ebp + eax*4]
push dword [eax + 0xc30]
mov eax, dword [ecx]
add eax, edi
push esi
push eax
mov eax, dword [ecx + 0xd2c]
push dword [ebx + eax*4 + 0xc]
lea eax, [ebx + 0x5bc]
push eax
mov eax, dword [esp + 0x44]
push dword [ebx]
push edx
mov eax, dword [eax]
add eax, 0x120
push eax
call fcn.10020080
mov ebp, dword [esp + 0x60]
add esp, 0x20
cmp dword [esp + esi*4 + 0xe0], 0
je 0x100121a5
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x10]
mov ecx, dword [eax]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + edx*4 + 0x1c]
imul ecx, esi
mov eax, dword [esp + eax + 0x84]
push dword [edx + 0xd2c]
lea eax, [eax + ecx*4]
push eax
lea eax, [ebx + 0xc]
push eax
mov eax, dword [edx]
add eax, edi
push eax
call fcn.1001cad0
add esp, 0x10
mov eax, dword [esp + 0x10]
inc esi
add edi, ebp
mov edx, dword [esp + eax*4 + 0xa4]
cmp esi, dword [esp + eax*4 + 0x64]
jl 0x10012120
mov ecx, dword [esp + 0x24]
mov ebp, dword [esp + 0x18]
inc eax
add ecx, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0x24], ecx
cmp eax, ebp
jl 0x100120e0
xor ebx, ebx
test ebp, ebp
jle 0x100122e6
xor edx, edx
xor ebp, ebp
mov dword [esp + 0x10], edx
mov dword [esp + 0x24], ebp
nop
mov eax, dword [esp + ebx*4 + 0x64]
xor esi, esi
test eax, eax
jle 0x100122c9
lea ecx, [esp + 0x84]
lea ecx, [ecx + ebx*4]
nop dword [eax + eax]
cmp dword [esp + esi*4 + 0xe0], 0
je 0x100122c0
mov edi, dword [esp + ebx*4 + 0x74]
mov ebp, dword [esp + ebp + 0xc4]
add edi, 0xc
cmp dword [esp + edx + 0x9c], 0
mov ecx, dword [ecx]
je 0x1001227b
mov ecx, dword [esp + ebx*4 + 0x7c]
mov edx, dword [esp + ebx*4 + 0x1c]
imul ecx, esi
shl ecx, 2
lea eax, [ecx + ebp]
push eax
push dword [edx + 0xd2c]
push edi
lea edi, [esp + 0x90]
mov eax, dword [edi + ebx*4]
lea edi, [edi + ebx*4]
add eax, ecx
mov ecx, dword [esp + ebx*4 + 0x98]
imul ecx, esi
push eax
mov eax, dword [edx]
lea eax, [eax + ecx*4]
push eax
call fcn.1001c6f0
add esp, 0x14
jmp 0x100122aa
push dword [esp + ebx*4 + 0xbc]
mov eax, dword [esp + ebx*4 + 0x20]
push ebp
push dword [eax + 0xd2c]
push edi
push ecx
push dword [eax]
call fcn.1001c4c0
add esp, 0x18
mov dword [esp + ebx*4 + 0x5c], eax
cmp dword [esp + 0x14], eax
cmovg eax, dword [esp + 0x14]
mov dword [esp + 0x14], eax
mov ebp, dword [esp + 0x24]
lea ecx, [esp + 0x84]
mov edx, dword [esp + 0x10]
lea ecx, [ecx + ebx*4]
mov eax, dword [esp + ebx*4 + 0x64]
inc esi
cmp esi, eax
jl 0x10012210
mov eax, dword [esp + 0x18]
inc ebx
add edx, 4
add ebp, 4
mov dword [esp + 0x10], edx
mov dword [esp + 0x24], ebp
cmp ebx, eax
jl 0x100121f0
jmp 0x100122ea
mov eax, dword [esp + 0x18]
xor ebp, ebp
mov dword [esp + 0x10], ebp
test eax, eax
jle 0x100123e8
mov ecx, dword [esp + 0x14]
lea eax, [ecx + ecx]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x18]
test ecx, ecx
je 0x100123db
lea edx, [ebp*4]
cmp dword [esp + edx + 0x9c], 0
mov dword [esp + 0x40], edx
jne 0x100123db
mov eax, dword [esp + edx + 0x74]
xor ebx, ebx
cmp dword [eax + 0x1b4], ebx
jle 0x10012367
xor esi, esi
mov ebp, eax
xor edi, edi
nop dword [eax]
mov eax, dword [esp + edx + 0x1c]
lea esi, [esi + 4]
inc ebx
lea edi, [edi + 4]
mov edx, dword [eax]
mov eax, dword [esi + edx - 4]
sar eax, cl
mov dword [edi + edx - 4], eax
mov edx, dword [esp + 0x40]
cmp ebx, dword [ebp + 0x1b4]
jl 0x10012340
mov ebp, dword [esp + 0x10]
lea eax, [esp + 0x1c]
mov esi, ecx
mov ecx, dword [eax + ebp*4]
lea eax, [eax + ebp*4]
sub esi, dword [esp + ebp*4 + 0x5c]
xor edx, edx
add esi, esi
mov dword [esp + 0x30], eax
cmp dword [ecx + 0xd2c], edx
jle 0x100123cb
mov eax, dword [esp + ebp*4 + 0xc4]
mov edi, dword [esp + ebp*4 + 0xbc]
mov ebx, dword [esp + ebp*4 + 0xac]
sub edi, eax
mov ebp, esi
shl ebp, 0x19
sub ebx, eax
sub dword [eax + edi], ebp
lea eax, [eax + 4]
mov ecx, esi
inc edx
sar dword [eax - 4], cl
mov ecx, dword [esp + 0x50]
sar dword [ebx + eax - 4], cl
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx]
cmp edx, dword [ecx + 0xd2c]
jl 0x100123a5
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
add dword [ecx + 0xc34], eax
mov ecx, eax
mov eax, dword [esp + 0x18]
inc ebp
mov dword [esp + 0x10], ebp
cmp ebp, eax
jl 0x10012307
mov ebp, dword [esp + 0x18]
xor edx, edx
mov dword [esp + 0x14], edx
test ebp, ebp
jle 0x10012785
mov dword [esp + 0x24], edx
mov dword [esp + 0x5c], edx
mov eax, dword [esp + edx*4 + 0x1c]
mov ebp, dword [eax + 0xc34]
mov eax, dword [esp + edx*4 + 0x9c]
add ebp, ebp
lea ecx, [ebp - 4]
test ecx, ecx
js 0x1001242a
mov eax, dword [esp + edx*4 + 0x74]
mov ebx, dword [eax + 0x1bc]
sar ebx, cl
jmp 0x1001244a
neg eax
sbb eax, eax
and eax, 0xfffffffa
cmp ecx, eax
jl 0x10012445
mov eax, dword [esp + edx*4 + 0x74]
neg ecx
mov ebx, dword [eax + 0x1bc]
shl ebx, cl
jmp 0x1001244a
mov ebx, 0x7fffffff
xor edi, edi
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x10], edi
cmp dword [esp + edx*4 + 0x64], edi
jle 0x1001276a
mov esi, dword [esp + edx*4 + 0x74]
mov eax, dword [esp + edx*4 + 0x7c]
mov ecx, dword [esp + edx*4 + 0xac]
shl eax, 2
lea ebx, [esi + 0x28c]
mov dword [esp + 0x58], eax
mov eax, dword [esp + edx*4 + 0xc4]
mov dword [esp + 0x30], ebx
sub eax, ecx
lea ebx, [esi + 0x1c0]
mov dword [esp + 0x54], eax
mov eax, dword [esp + edx*4 + 0xd8]
mov dword [esp + 0x40], ebx
sub eax, ecx
lea ebx, [esi + 0x424]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x44], ebx
lea ebx, [esi + 0x358]
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x50], eax
nop
mov eax, dword [esp + edx*4 + 0x1c]
xor esi, esi
cmp dword [eax + 0xd2c], esi
jle 0x1001250d
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + eax + 0xac]
mov eax, dword [esp + 0x5c]
mov eax, dword [esp + eax + 0x7c]
imul eax, edi
mov edi, dword [esp + 0x14]
lea edx, [ecx + eax*4]
nop dword [eax + eax]
cmp dword [edx], ebx
mov ecx, ebx
cmovl ecx, dword [edx]
inc esi
mov dword [edx], ecx
lea edx, [edx + 4]
mov eax, dword [esp + edi*4 + 0x1c]
cmp esi, dword [eax + 0xd2c]
jl 0x100124f0
mov edi, dword [esp + 0x10]
push dword [esp + 0x34]
push dword [esp + 0x34]
push dword [esp + 0x48]
push dword [eax + 0xd2c]
call fcn.1001c240
mov edx, dword [esp + 0x24]
add esp, 0x10
add ebp, 0x10
mov ebx, 0x1f
mov eax, dword [esp + edx*4 + 0x1c]
mov ecx, dword [eax + 0xd2c]
js 0x1001259c
cmp ebp, ebx
cmovg ebp, ebx
xor ebx, ebx
test ecx, ecx
jle 0x100125ef
mov eax, dword [esp + edx*4 + 0x7c]
mov ecx, dword [esp + edx*4 + 0xac]
imul eax, edi
mov edi, dword [esp + edx*4 + 0x74]
add edi, 0xe0
lea esi, [ecx + eax*4]
nop dword [eax]
mov edx, dword [edi]
lea edi, [edi + 4]
mov eax, dword [esi]
lea esi, [esi + 4]
sar eax, 4
mov ecx, ebp
sar edx, cl
cmp eax, edx
cmovg edx, eax
mov eax, dword [esp + 0x14]
mov dword [esi - 4], edx
inc ebx
mov eax, dword [esp + eax*4 + 0x1c]
cmp ebx, dword [eax + 0xd2c]
jl 0x10012570
jmp 0x100125ef
neg ebp
cmp ebp, 0x1f
cmovg ebp, ebx
xor ebx, ebx
test ecx, ecx
jle 0x100125ef
mov eax, dword [esp + edx*4 + 0x7c]
mov ecx, dword [esp + edx*4 + 0xac]
imul eax, edi
mov edi, dword [esp + edx*4 + 0x74]
add edi, 0xe0
lea esi, [ecx + eax*4]
mov edx, dword [edi]
lea edi, [edi + 4]
mov eax, dword [esi]
lea esi, [esi + 4]
sar eax, 4
mov ecx, ebp
shl edx, cl
cmp eax, edx
cmovg edx, eax
mov eax, dword [esp + 0x14]
mov dword [esi - 4], edx
inc ebx
mov eax, dword [esp + eax*4 + 0x1c]
cmp ebx, dword [eax + 0xd2c]
jl 0x100125c5
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x28]
mov ecx, dword [ebx + edi*4]
cmp dword [ecx + 0xdd0], 0
jne 0x10012707
cmp dword [ecx + 0xc30], 3
jne 0x10012655
xor edx, edx
cmp dword [eax + 0xd2c], edx
jle 0x1001263b
mov ecx, 0xcfc
nop
mov eax, dword [ebx + edi*4]
lea ecx, [ecx + 4]
inc edx
mov dword [ecx + eax - 4], 0x7fffffff
mov eax, dword [esp + edi*4 + 0x1c]
cmp edx, dword [eax + 0xd2c]
jl 0x10012620
mov eax, dword [ebx + edi*4]
mov dword [eax + 0xdc8], 0
mov eax, dword [ebx + edi*4]
mov dword [eax + 0xdcc], 0
mov edx, dword [ebx + edi*4]
mov ecx, dword [esp + edi*4 + 0x1c]
mov esi, dword [esp + edi*4 + 0x74]
mov ebx, dword [esp + 0x34]
lea eax, [edx + 0xdc8]
push eax
push dword [ecx + 0xc34]
movzx eax, word [esi + 0x1b0]
push ebx
push eax
push dword [esi + 0x1ac]
lea eax, [edx + 0xcfc]
push dword [ecx + 0xd2c]
push dword [edx + 0xdcc]
push eax
call fcn.1001c330
mov esi, dword [esp + 0x48]
add esp, 0x20
mov eax, dword [esi + edi*4]
mov dword [eax + 0xdcc], 1
mov eax, dword [esi + edi*4]
cmp dword [eax + 0xc30], 1
jne 0x1001270b
mov eax, dword [esp + edi*4 + 0x1c]
xor edx, edx
cmp dword [eax + 0xd2c], edx
jle 0x100126eb
mov ecx, 0xcfc
nop dword [eax + eax]
mov eax, dword [esi + edi*4]
lea ecx, [ecx + 4]
inc edx
mov dword [ecx + eax - 4], 0x7fffffff
mov eax, dword [esp + edi*4 + 0x1c]
cmp edx, dword [eax + 0xd2c]
jl 0x100126d0
mov eax, dword [esi + edi*4]
mov dword [eax + 0xdc8], 0
mov eax, dword [esi + edi*4]
mov dword [eax + 0xdcc], 0
jmp 0x1001270b
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + edi*4 + 0x1c]
mov esi, dword [esp + 0x50]
add esi, ebx
mov eax, dword [eax + 0xd2c]
shl eax, 2
push eax
mov eax, dword [esp + 0x58]
add eax, ebx
push eax
push esi
call fcn.100058b0
mov eax, dword [esp + edi*4 + 0x28]
push esi
push dword [esp + 0x54]
push dword [esp + 0x4c]
push dword [eax + 0xd2c]
call fcn.1001c240
mov edi, dword [esp + 0x2c]
add esp, 0x1c
mov edx, dword [esp + 0x14]
inc edi
add ebx, dword [esp + 0x58]
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x10], edi
cmp edi, dword [esp + edx*4 + 0x64]
jl 0x100124c0
add dword [esp + 0x24], 4
inc edx
add dword [esp + 0x5c], 4
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x14], edx
cmp edx, ebp
jl 0x10012402
cmp ebp, 2
jne 0x10012861
mov eax, dword [esp + 0x68]
mov dword [esp + 0x38], eax
test eax, eax
jle 0x10012861
mov eax, dword [esp + 0x90]
xor ebp, ebp
mov ebx, dword [esp + 0x88]
mov edi, dword [esp + 0x84]
shl eax, 2
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x7c]
shl eax, 2
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x80]
shl eax, 2
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xd4]
sub eax, ebx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xd0]
sub eax, edi
mov dword [esp + 0x40], eax
nop
mov edx, dword [esp + 0x20]
xor ecx, ecx
mov esi, dword [esp + 0x1c]
lea eax, [edx + 0x964]
push eax
lea eax, [esi + 0x964]
push eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 4]
cmp dword [eax + 0xc30], 2
mov eax, dword [esp + 0x38]
setne cl
add eax, ebx
push ecx
push eax
mov eax, dword [esp + 0x50]
add eax, edi
push eax
push dword [esi + 0xd2c]
mov eax, dword [esp + 0x44]
add eax, 0xc
push eax
mov eax, dword [edx]
push ebx
add eax, ebp
push edi
push eax
mov eax, dword [esi]
add eax, ebp
push eax
call fcn.1001c860
add ebx, dword [esp + 0x7c]
add esp, 0x2c
add edi, dword [esp + 0x54]
add ebp, dword [esp + 0x44]
sub dword [esp + 0x38], 1
jne 0x100127f0
mov ebp, dword [esp + 0x18]
test ebp, ebp
jle 0x10012bc0
mov eax, dword [esp + 0x28]
lea esi, [esp + 0x94]
mov edx, dword [esp + 0x48]
lea ecx, [esp + 0x9c]
sub ecx, eax
mov dword [esp + 0x2c], ebp
sub eax, esi
mov dword [esp + 0x30], ecx
mov edi, esi
mov dword [esp + 0x40], eax
sub edi, edx
lea esi, [esp + 0x1c]
sub esi, edx
mov dword [esp + 0x10], edi
mov ebx, edx
mov dword [esp + 0x14], esi
lea ebp, [edi + ebx]
add eax, ebp
cmp dword [ecx + eax], 0
je 0x10012a7b
mov eax, dword [eax]
mov edx, dword [esp + 0x6c]
mov esi, dword [ebx + esi]
mov ecx, dword [eax + 0xc58]
mov edi, ecx
mov edx, dword [edx]
add eax, 0xc5c
imul edi, edx
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0x3c]
push dword [edi + 0xe8c]
push eax
mov eax, dword [ebx]
push ecx
mov ecx, dword [esp + 0x78]
push dword [eax + 0x840]
lea eax, [esi + 0xc38]
push ebp
push eax
lea eax, [ecx + 0x4f0]
push eax
lea eax, [ecx + 0xc]
push eax
push dword [esi + 0xd2c]
lea eax, [esi + 0xa54]
push edx
push eax
lea eax, [esi + 0x784]
push eax
lea eax, [esi + 0x1e4]
push eax
lea eax, [esi + 4]
push eax
push dword [esi]
call fcn.1001e020
mov edi, dword [esp + 0x94]
add esp, 0x3c
xor esi, esi
test edi, edi
jle 0x10012976
mov ebp, dword [esp + 0x14]
nop word [eax + eax]
mov edx, dword [ebx + ebp]
lea ecx, [esi*4]
mov eax, dword [ebx]
push dword [edx + 0xd2c]
mov eax, dword [eax + 0x844]
add eax, ecx
push eax
lea eax, [edx + 0x1e4]
add eax, ecx
push eax
call fcn.1000dfa0
mov eax, dword [esp + 0x78]
add esp, 0xc
add esi, dword [eax]
cmp esi, edi
jl 0x10012940
xor ebp, ebp
mov dword [esp + 0x38], ebp
test edi, edi
jle 0x10012a0e
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [esp + 0x14]
lea esi, [ebp*4]
mov ecx, dword [eax + ebx]
mov eax, dword [ebx]
push dword [ecx + 0xd2c]
mov eax, dword [eax + 0x83c]
add eax, esi
push eax
lea eax, [ecx + 4]
add eax, esi
push eax
call fcn.1000dfa0
mov eax, dword [esp + 0x20]
xor edi, edi
add esp, 0xc
mov eax, dword [eax + ebx]
cmp dword [eax + 0xd2c], edi
jle 0x100129fc
mov ebp, dword [esp + 0x14]
mov eax, dword [ebx]
mov ecx, 0xbe000000
mov edx, dword [eax + 0x83c]
cmp dword [edx + esi], ecx
cmovg ecx, dword [edx + esi]
inc edi
mov dword [edx + esi], ecx
lea esi, [esi + 4]
mov eax, dword [ebx + ebp]
cmp edi, dword [eax + 0xd2c]
jl 0x100129d2
mov ebp, dword [esp + 0x38]
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0x58]
add ebp, dword [eax]
mov dword [esp + 0x38], ebp
cmp ebp, edi
jl 0x10012990
mov ebp, dword [esp + 0x18]
cmp ebp, 2
jne 0x10012a52
xor esi, esi
test edi, edi
jle 0x10012a52
mov ebp, dword [esp + 0x6c]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + ebx]
push dword [eax + 0xd2c]
lea ecx, [eax + esi*4]
lea eax, [ecx + 0x964]
push eax
lea eax, [ecx + 0x784]
push eax
call fcn.1000dfa0
add esi, dword [ebp]
add esp, 0xc
cmp esi, edi
jl 0x10012a21
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
push 0xf4
mov eax, dword [ebx + esi]
add eax, 0xc38
push eax
mov eax, dword [ebx]
add eax, 0x18
push eax
call fcn.100058b0
mov edi, dword [esp + 0x1c]
add esp, 0xc
jmp 0x10012baa
mov ebp, dword [ebx + esi]
mov edi, dword [ebp + 0xd2c]
sub edi, 1
js 0x10012ac0
mov esi, dword [esp + 0x3c]
add esi, 0xc
lea esi, [esi + edi*4]
mov ecx, dword [esi + 4]
mov edx, dword [esi]
dec ecx
cmp ecx, edx
jl 0x10012ab4
mov eax, dword [ebp]
lea eax, [eax + ecx*4]
cmp dword [eax], 0
jne 0x10012ab0
dec ecx
sub eax, 4
cmp ecx, edx
jge 0x10012aa3
cmp ecx, edx
jg 0x10012abc
sub esi, 4
sub edi, 1
jns 0x10012a93
mov esi, dword [esp + 0x14]
mov edx, dword [ebx + esi]
lea ecx, [edi + 1]
mov edi, dword [esp + 0x10]
mov ebp, 5
mov dword [edi + ebx], ecx
mov eax, dword [edx + 0xd2c]
cmp eax, 5
cmovg eax, ebp
cmp eax, ecx
cmovg ecx, eax
mov dword [edi + ebx], ecx
mov eax, dword [edx + 0xd2c]
shl eax, 2
push eax
lea eax, [edx + 0x3c4]
push eax
mov eax, dword [ebx]
push dword [eax + 0x844]
call fcn.100058b0
mov ebp, dword [esp + 0x48]
push 0xf4
lea eax, [ebp + 0xc]
push eax
mov eax, dword [ebx]
add eax, 0x18
push eax
call fcn.100058b0
mov eax, dword [ebx + esi]
mov eax, dword [eax + 0xd2c]
shl eax, 2
push eax
lea eax, [ebp + 0x4f0]
push eax
mov eax, dword [ebx]
push dword [eax + 0x840]
call fcn.100058b0
mov ecx, dword [ebx + esi]
mov eax, dword [ebx]
push dword [ecx + 0xd2c]
push dword [eax + 0x83c]
lea eax, [ecx + 4]
push eax
call fcn.1000dfa0
mov eax, dword [ebx + esi]
xor ebp, ebp
add esp, 0x30
cmp dword [eax + 0xd2c], ebp
jle 0x10012ba6
xor esi, esi
xor edi, edi
nop dword [eax + eax]
mov eax, dword [ebx]
lea edi, [edi + 4]
mov ecx, 0xbe000000
mov edx, dword [eax + 0x83c]
mov eax, dword [esp + 0x14]
cmp dword [esi + edx], ecx
cmovg ecx, dword [esi + edx]
inc ebp
mov dword [edi + edx - 4], ecx
lea esi, [esi + 4]
mov eax, dword [eax + ebx]
cmp ebp, dword [eax + 0xd2c]
jl 0x10012b70
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
add ebx, 4
sub dword [esp + 0x2c], 1
mov eax, dword [esp + 0x40]
jne 0x100128a3
xor esi, esi
test ebp, ebp
jle 0x10012d20
mov ebx, dword [esp + 0x48]
nop
mov eax, dword [ebx + esi*4]
add eax, 0x650
push 0xf0
push eax
call fcn.10005890
mov eax, dword [ebx + esi*4]
add eax, 0x740
push 0xf0
push eax
call fcn.10005890
inc esi
add esp, 0x10
cmp esi, ebp
jl 0x10012bd0
test ebp, ebp
jle 0x10012d20
mov edx, dword [esp + 0x48]
lea eax, [esp + 0x1c]
mov ecx, dword [esp + 0x28]
lea esi, [esp + 0xa4]
sub eax, edx
mov dword [esp + 0x38], ebp
mov dword [esp + 0x30], eax
lea ebx, [esp + 0x100]
lea eax, [esp + 0x9c]
sub ecx, edx
sub eax, edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], eax
sub esi, edx
lea eax, [esp + 0x94]
mov dword [esp + 0x58], esi
sub eax, edx
mov edi, edx
mov dword [esp + 0x50], eax
lea eax, [esp + 0xb4]
sub eax, edx
mov dword [esp + 0x54], eax
mov eax, ebp
nop dword [eax]
nop word [eax + eax]
mov ebp, dword [edi + ecx]
cmp dword [ebp + 0xdd0], 0
jne 0x10012d09
mov edx, dword [edi]
mov eax, dword [esp + 0x30]
mov ecx, dword [esi + edi]
mov esi, dword [eax + edi]
lea eax, [edx + 0x560]
push eax
push dword [edx + 0x844]
push dword [ecx + 4]
lea eax, [esi + 0x5a4]
push dword [ecx + 0xc]
mov ecx, dword [esp + 0x50]
push dword [edx + 0x1a0]
push ebx
cmp dword [ecx + edi], 0
mov ecx, 0x758
push eax
push dword [esi]
mov eax, 0xc
cmovne eax, ecx
mov ecx, dword [esp + 0x5c]
add eax, ecx
push eax
push dword [edx + 0x83c]
mov eax, dword [esp + 0x78]
push dword [eax + edi]
mov eax, dword [esp + 0x80]
push dword [esi + 0xd2c]
push dword [ebp + 0xc30]
push dword [eax + edi]
lea eax, [ecx + 0x6a0]
push eax
call fcn.100205e0
mov eax, dword [esp + 0x74]
add esp, 0x3c
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x58]
add ebx, 0x66
add edi, 4
sub eax, 1
mov dword [esp + 0x38], eax
jne 0x10012c70
mov ebp, dword [esp + 0x18]
cmp ebp, 2
jne 0x10012fd2
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x28]
lea ebp, [edi + 0xc]
mov ebx, dword [esp + 0x98]
cmp dword [esp + 0x94], ebx
mov dword [ebp], 0
cmovg ebx, dword [esp + 0x94]
mov dword [edi + 8], 1
mov eax, dword [eax]
mov dword [esp + 0x98], ebx
mov dword [esp + 0x94], ebx
cmp dword [eax + 0xc30], 2
je 0x10012edc
push dword [esp + 0xb8]
mov ecx, dword [esp + 0x20]
push dword [esp + 0xb8]
mov ebx, dword [esp + 0x44]
add ebx, 0x6a0
push ebx
lea eax, [ecx + 0x784]
push eax
mov eax, dword [edi + 4]
push dword [eax + 0x844]
mov eax, dword [edi]
push dword [eax + 0x844]
mov eax, dword [esp + 0x38]
add eax, 0x1e4
push eax
lea eax, [ecx + 0x1e4]
push eax
push dword [ecx + 0xd2c]
call fcn.10020910
mov eax, dword [esp + 0x60]
add esp, 0x24
cmp dword [eax + 0x744], 0
je 0x10012de3
cmp dword [edi + 8], 0
je 0x10012de3
mov edx, 1
jmp 0x10012de5
xor edx, edx
mov ecx, dword [eax]
lea eax, [esp + 0xb4]
mov esi, dword [edi + 4]
add edi, 0x10
push eax
lea eax, [esi + 0x740]
push eax
lea eax, [esi + 0x650]
push eax
mov eax, dword [esp + 0x48]
push edx
mov edx, dword [esp + 0x30]
add eax, 0xc
push eax
push dword [esp + 0xa8]
mov eax, dword [esp + 0x60]
push ecx
push ecx
mov ecx, dword [esp + 0x3c]
mov eax, dword [eax]
push edi
push ebp
push dword [esi + 0x844]
push dword [eax + 0x844]
lea eax, [edx + 0xa54]
push eax
lea eax, [ecx + 0xa54]
push eax
push dword [esi + 0x83c]
lea eax, [edx + 4]
push eax
lea eax, [ecx + 4]
push eax
push dword [edx]
lea eax, [edx + 0x1e4]
push dword [ecx]
push eax
lea eax, [ecx + 0x1e4]
push eax
call fcn.10020e50
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x9c]
mov ecx, dword [eax + 0xd2c]
mov eax, dword [esi]
add eax, 0x18
push eax
push dword [esp + 0xec]
mov eax, dword [esp + 0x98]
push ecx
push ecx
push dword [eax + 0x748]
mov eax, dword [esi + 4]
push edi
push ebp
add eax, 0x650
push eax
lea eax, [esp + 0x90]
push esi
push eax
call fcn.1001d960
mov eax, dword [esp + 0x98]
add esp, 0x7c
push ebp
push edi
push dword [esp + 0xc0]
push dword [esp + 0xc0]
push ebx
push dword [eax + 0xd2c]
call fcn.10020850
mov ebp, dword [esp + 0x30]
add esp, 0x18
jmp 0x10012fd6
mov esi, dword [edi + 4]
lea eax, [esp + 0xb4]
push eax
mov edx, dword [esp + 0x40]
add edi, 0x10
lea eax, [esi + 0x740]
push eax
mov ecx, dword [edx + 0x74c]
lea eax, [esi + 0x650]
push eax
xor eax, eax
cmp dword [edx + 0x744], eax
mov edx, dword [esp + 0x28]
setne al
push eax
lea eax, [edx + 0xc38]
push eax
push ebx
mov ebx, dword [esp + 0x40]
push ecx
mov eax, dword [ebx]
mov eax, dword [eax + 0xc58]
imul eax, ecx
mov ecx, dword [esp + 0x3c]
push eax
mov eax, dword [esp + 0x68]
push edi
push ebp
push dword [esi + 0x844]
mov eax, dword [eax]
push dword [eax + 0x844]
lea eax, [ecx + 0xa54]
push eax
lea eax, [edx + 0xa54]
push eax
push dword [esi + 0x83c]
lea eax, [ecx + 4]
push eax
lea eax, [edx + 4]
push eax
push dword [ecx]
lea eax, [ecx + 0x1e4]
push dword [edx]
push eax
lea eax, [edx + 0x1e4]
push eax
call fcn.10020e50
mov eax, dword [esp + 0xc0]
mov esi, dword [esp + 0x9c]
mov ecx, dword [eax]
mov eax, dword [esi]
add eax, 0x18
push eax
mov eax, dword [ebx]
push dword [esp + 0xec]
push ecx
mov eax, dword [eax + 0xc58]
imul eax, ecx
push eax
mov eax, dword [esp + 0xa0]
push dword [eax + 0xe94]
mov eax, dword [esi + 4]
push edi
push ebp
add eax, 0x650
push eax
lea eax, [esp + 0x90]
push esi
push eax
call fcn.1001d960
mov ebp, dword [esp + 0x94]
add esp, 0x7c
jmp 0x10012fd6
mov esi, dword [esp + 0x48]
xor edi, edi
test ebp, ebp
jle 0x10013085
mov ebp, esi
lea eax, [esp + 0x1c]
sub ebp, eax
xor ebx, ebx
nop word [eax + eax]
mov eax, dword [esp + 0x28]
lea esi, [esp + 0x1c]
lea esi, [esi + edi*4]
mov eax, dword [ebx + eax]
cmp dword [eax + 0xdd0], 0
je 0x10013033
mov eax, dword [esi]
xor edx, edx
cmp dword [eax + 0xd2c], edx
jle 0x10013073
mov ecx, 0x560
mov eax, dword [esi + ebp]
lea ecx, [ecx + 4]
inc edx
mov dword [ecx + eax - 4], 0x80000000
mov eax, dword [esi]
cmp edx, dword [eax + 0xd2c]
jl 0x10013018
jmp 0x10013073
mov eax, dword [esi + ebp]
mov ecx, dword [esi]
push dword [eax + 0x83c]
add eax, 0x560
push eax
lea eax, [ecx + 0x3c4]
push eax
mov eax, dword [esp + edi*4 + 0xc0]
add eax, 0x168
push eax
mov eax, dword [esp + edi*4 + 0x84]
add eax, 0x6a0
push eax
push dword [ecx + 0xd2c]
call fcn.100204d0
add esp, 0x18
inc edi
add ebx, 4
cmp edi, dword [esp + 0x18]
jl 0x10012ff0
mov ebp, dword [esp + 0x18]
xor edi, edi
test ebp, ebp
jle 0x100131cb
mov ebx, dword [esp + 0x48]
cmp dword [esp + edi*4 + 0x9c], 0
mov ecx, dword [ebx + edi*4]
mov eax, dword [esp + edi*4 + 0x94]
mov dword [ecx + 8], eax
mov eax, dword [esp + edi*4 + 0x1c]
mov ecx, dword [ebx + edi*4]
mov eax, dword [eax + 0xc34]
mov dword [ecx + 0x10c], eax
jne 0x100130f6
mov ecx, dword [ebx + edi*4]
mov edx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov ecx, dword [ebx + edi*4]
mov edx, dword [esp + 0x28]
mov dword [ecx + 4], eax
mov eax, dword [edx + edi*4]
mov ecx, dword [ebx + edi*4]
mov eax, dword [eax + 0xc30]
mov dword [ecx + 0xc], eax
mov eax, dword [edx + edi*4]
mov ecx, dword [ebx + edi*4]
mov eax, dword [eax + 0xc34]
mov dword [ecx + 0x10], eax
jmp 0x1001312f
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x6c]
mov eax, dword [eax + edi*4]
mov ecx, dword [eax + 0xc58]
imul ecx, dword [edx]
mov eax, dword [ebx + edi*4]
mov dword [eax], ecx
mov ecx, dword [ebx + edi*4]
mov eax, dword [edx]
mov edx, dword [esp + 0x28]
mov dword [ecx + 4], eax
mov eax, dword [ebx + edi*4]
mov dword [eax + 0xc], 2
mov eax, dword [ebx + edi*4]
mov dword [eax + 0x10], 0
mov edx, dword [edx + edi*4]
xor ecx, ecx
mov esi, dword [edx + 0xc58]
test esi, esi
jle 0x10013162
add edx, 0xc5c
mov eax, dword [edx]
add ecx, ecx
cmp eax, 1
jle 0x1001315a
dec eax
nop
add ecx, ecx
or ecx, 1
sub eax, 1
jne 0x10013150
add edx, 4
sub esi, 1
jne 0x10013144
mov eax, dword [ebx + edi*4]
push 0x10
mov dword [eax + 0x14], ecx
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + edi*4]
add eax, 0xc5c
push eax
mov eax, dword [ebx + edi*4]
add eax, 0x110
push eax
call fcn.100058b0
mov eax, dword [esp + edi*4 + 0x28]
add eax, 0x1e4
push 0xf0
push eax
mov eax, dword [ebx + edi*4]
push dword [eax + 0x834]
call fcn.100058b0
mov eax, dword [esp + edi*4 + 0x34]
add eax, 0xa54
push 0xf0
push eax
mov eax, dword [ebx + edi*4]
push dword [eax + 0x838]
call fcn.100058b0
inc edi
add esp, 0x24
cmp edi, ebp
jl 0x10013093
xor eax, eax
mov ecx, dword [esp + 0x9cc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1003b025
add esp, 0x9c0
ret