Function at 0x100c6c20
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x1d8
push esi
mov esi, edx
mov dword [esp + 0x48], ecx
push edi
mov ecx, esi
mov dword [esp + 0x20], esi
call fcn.100c3fb0
mov ecx, esi
mov dword [esi + 8], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
call fcn.100c2780
mov ecx, dword [esi + 0x4c]
xor edi, edi
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], edi
mov dword [esp + 0x3c], ecx
lea edx, [edi + 8]
test ecx, ecx
jle 0x100c6cc9
cmp ecx, edx
mov eax, ecx
cmovl eax, edx
test eax, eax
jle 0x100c6cc9
mov ecx, dword [0x1029a390]
test ecx, ecx
je 0x100c6cae
inc dword [ecx + 0x374]
push dword [0x1029a394]
imul eax, eax, 0x54
push eax
call fcn.100a77d0
add esp, 8
mov dword [esp + 0x44], eax
mov edx, 8
mov esi, dword [esi + 0x34]
mov dword [esp + 0x38], esi
test esi, esi
jle 0x100c6d0a
cmp esi, 8
mov ecx, esi
cmovl ecx, edx
test ecx, ecx
jle 0x100c6d0a
mov eax, dword [0x1029a390]
test eax, eax
je 0x100c6cef
inc dword [eax + 0x374]
push dword [0x1029a394]
lea eax, [ecx + ecx*2]
shl eax, 3
push eax
call fcn.100a77d0
add esp, 8
mov dword [esp + 0x40], eax
mov edi, eax
imul ecx, dword [esp + 0x3c], 0x54
push ecx
push 0
push dword [esp + 0x4c]
call fcn.101e3600
add esp, 0xc
lea eax, [esi + esi*2]
shl eax, 3
push eax
push 0
push edi
call fcn.101e3600
mov ecx, dword [esp + 0x2c]
add esp, 0xc
mov dword [esp + 0x1c], 0
cmp dword [ecx + 0x4c], 0
jle 0x100c6e31
mov esi, dword [esp + 0x44]
xor eax, eax
mov dword [esp + 0x28], eax
add esi, 0x34
jmp 0x100c6d57
mov ecx, edx
mov edi, dword [ecx + 0x54]
xor edx, edx
add edi, eax
mov dword [esi - 4], 0xffffffff
cmp dword [ecx + 0x34], edx
jle 0x100c6e7c
or eax, 0xffffffff
cmp eax, 0xffffffff
jne 0x100c6d9e
mov ecx, dword [ecx + 0x3c]
mov eax, dword [edi + 0x74]
cmp eax, dword [ecx + edx*4]
jne 0x100c6d88
mov dword [esi - 4], edx
mov eax, edx
jmp 0x100c6d8b
mov eax, dword [esi - 4]
mov ecx, dword [esp + 0x20]
inc edx
cmp edx, dword [ecx + 0x34]
jl 0x100c6d71
cmp eax, 0xffffffff
je 0x100c6e7c
push ecx
push edi
push dword [esp + 0x54]
lea ecx, [esi - 0x34]
call fcn.100c68d0
test al, al
je 0x100c6e7c
mov eax, dword [esi - 4]
mov edx, 0x1025ab40
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x30]
test eax, eax
mov dword [esp + 0x24], ecx
cmovne edx, eax
mov dword [esi - 8], edx
cmp word [edx], 0
je 0x100c6df3
movzx eax, word [edx + 2]
test ax, ax
je 0x100c6def
mov ecx, eax
cmp dword [esi], ecx
cmovge ecx, dword [esi]
add edx, 4
mov dword [esi], ecx
cmp word [edx], 0
jne 0x100c6dd4
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
inc dword [edi + ecx*8]
mov ecx, dword [esi]
cmp dword [edi + edx*8 + 4], ecx
cmovge ecx, dword [edi + edx*8 + 4]
add eax, 0x78
mov dword [edi + edx*8 + 4], ecx
add esi, 0x54
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
inc ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], eax
cmp ecx, dword [edx + 0x4c]
jl 0x100c6d55
mov eax, dword [esp + 0x3c]
xor esi, esi
mov dword [esp + 0x30], esi
test eax, eax
jle 0x100c7164
mov esi, dword [esp + 0x44]
add esi, 0x44
mov dword [esp + 0x1c], eax
mov dword [esp + 0x48], esi
mov eax, dword [esi - 0x14]
mov edi, dword [esi - 0x10]
add edi, 0x20
sar edi, 5
lea ecx, [eax + eax*2]
mov eax, dword [esi - 4]
mov dword [esp + 0x18], ecx
cmp edi, eax
jle 0x100c6e9b
test eax, eax
je 0x100c6e86
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
add ecx, dword [esi - 4]
jmp 0x100c6e8b
mov byte [esp + 0x17], 0
jmp 0x100c7dd7
mov ecx, 8
cmp ecx, edi
mov eax, edi
cmovg eax, ecx
lea ecx, [esi - 8]
push eax
call fcn.100a62a0
lea eax, [edi*4]
mov dword [esi - 8], edi
push eax
push 0
push dword [esi]
call fcn.101e3600
mov edx, dword [esp + 0x24]
add esp, 0xc
mov eax, dword [esp + 0x40]
lea ecx, [edx*8 + 0xc]
add ecx, eax
mov dword [esp + 0x24], ecx
cmp dword [ecx], 0
jne 0x100c6f27
mov edi, dword [eax + edx*8 + 4]
mov eax, dword [ecx + 4]
add edi, 0x20
sar edi, 5
mov dword [esp + 0x4c], eax
cmp edi, eax
jle 0x100c6f0c
test eax, eax
je 0x100c6ef2
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
add ecx, dword [esp + 0x4c]
jmp 0x100c6ef7
mov ecx, 8
cmp ecx, edi
mov eax, edi
cmovg eax, ecx
mov ecx, dword [esp + 0x24]
push eax
call fcn.100a62a0
mov ecx, dword [esp + 0x24]
lea eax, [edi*4]
mov dword [ecx], edi
push eax
push 0
push dword [ecx + 8]
call fcn.101e3600
mov edx, dword [esp + 0x24]
add esp, 0xc
mov eax, dword [esi - 0x18]
mov dword [esp + 0x28], eax
movzx ecx, word [eax]
test cx, cx
je 0x100c6ffd
nop word [eax + eax]
movzx eax, word [eax + 2]
test ax, ax
je 0x100c6ff9
movzx edi, cx
cmp edi, eax
ja 0x100c6fde
mov eax, dword [esp + 0x40]
mov esi, edi
mov ecx, edi
sar esi, 5
and ecx, 0x1f
mov dword [esp + 0x4c], ecx
mov edx, dword [eax + edx*8 + 0x14]
mov eax, 1
shl eax, cl
test dword [edx + esi*4], eax
jne 0x100c6fc9
mov eax, dword [esp + 0x48]
push edi
push dword [eax - 0x2c]
call fcn.10183e80
add esp, 8
test eax, eax
je 0x100c6fc9
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x40]
inc dword [eax - 0xc]
inc dword [edx + ecx*8 + 8]
mov ecx, dword [eax]
mov edx, dword [esp + 0x4c]
mov eax, dword [ecx + esi*4]
bts eax, edx
mov dword [ecx + esi*4], eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x18]
mov ecx, dword [eax + ecx*8 + 0x14]
mov eax, dword [ecx + esi*4]
bts eax, edx
inc dword [esp + 0x30]
mov dword [ecx + esi*4], eax
mov eax, dword [esp + 0x28]
inc edi
mov edx, dword [esp + 0x18]
movzx eax, word [eax + 2]
cmp edi, eax
jle 0x100c6f58
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
add eax, 4
mov dword [esp + 0x28], eax
movzx ecx, word [eax]
test cx, cx
jne 0x100c6f40
mov esi, dword [esp + 0x48]
add esi, 0x54
sub dword [esp + 0x1c], 1
mov dword [esp + 0x48], esi
jne 0x100c6e52
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x3c]
add esi, 0x48
mov edi, eax
mov dword [esp + 0x1c], eax
push dword [esi - 0x10]
mov ecx, esi
call fcn.100c7f50
mov ecx, dword [esi - 4]
mov edx, ecx
mov eax, dword [esi - 0xc]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x24], ecx
lea eax, [ecx + eax*4]
mov dword [esp + 0x70], eax
cmp ecx, eax
jae 0x100c7116
nop dword [eax]
mov eax, dword [edx]
mov dword [esp + 0x4c], eax
test eax, eax
je 0x100c7101
xor edi, edi
mov eax, 1
mov ecx, edi
shl eax, cl
test dword [esp + 0x4c], eax
je 0x100c70f7
mov eax, edx
xorps xmm0, xmm0
sub eax, dword [esp + 0x2c]
mov edx, dword [esi + 4]
shl eax, 3
and eax, 0xffffffe0
movq qword [esp + 0xa0], xmm0
add eax, edi
movzx eax, ax
mov dword [esp + 0xa4], eax
mov eax, dword [esi]
cmp eax, edx
jne 0x100c70ca
lea ecx, [eax + 1]
test edx, edx
je 0x100c70b3
mov eax, edx
cdq
sub eax, edx
sar eax, 1
add eax, dword [esi + 4]
jmp 0x100c70b8
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.100c7f50
mov eax, dword [esi]
xorps xmm0, xmm0
mov edx, dword [esp + 0x24]
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [esi + 8]
movups xmmword [eax + ecx*4], xmm0
movq xmm0, qword [esp + 0xa0]
movq qword [eax + ecx*4 + 0x10], xmm0
mov dword [eax + ecx*4 + 0x18], 0
inc dword [esi]
inc edi
cmp edi, 0x20
jb 0x100c7060
add edx, 4
mov dword [esp + 0x24], edx
cmp edx, dword [esp + 0x70]
jb 0x100c7050
mov edi, dword [esp + 0x1c]
mov ecx, dword [esi - 4]
test ecx, ecx
je 0x100c7150
mov eax, dword [0x1029a390]
mov dword [esi - 8], 0
mov dword [esi - 0xc], 0
test eax, eax
je 0x100c713a
dec dword [eax + 0x374]
push dword [0x1029a394]
push ecx
call fcn.100a77e0
add esp, 8
mov dword [esi - 4], 0
add esi, 0x54
sub edi, 1
mov dword [esp + 0x1c], edi
jne 0x100c7020
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x38]
test eax, eax
jle 0x100c71bb
mov edi, dword [esp + 0x40]
add edi, 0x14
mov ecx, dword [edi]
test ecx, ecx
je 0x100c71af
mov eax, dword [0x1029a390]
mov dword [edi - 4], 0
mov dword [edi - 8], 0
test eax, eax
je 0x100c7196
dec dword [eax + 0x374]
push dword [0x1029a394]
push ecx
call fcn.100a77e0
mov eax, dword [esp + 0x40]
add esp, 8
mov dword [edi], 0
add edi, 0x18
sub eax, 1
mov dword [esp + 0x38], eax
jne 0x100c7173
mov edi, dword [esp + 0x40]
test edi, edi
je 0x100c71e9
mov eax, dword [0x1029a390]
test eax, eax
je 0x100c71d2
dec dword [eax + 0x374]
push dword [0x1029a394]
push edi
call fcn.100a77e0
add esp, 8
mov dword [esp + 0x40], 0
push esi
lea ecx, [esp + 0x88]
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x90], 0
call fcn.100c64f0
mov eax, dword [esp + 0x84]
shl eax, 4
push eax
mov eax, dword [esp + 0x90]
push 0
push eax
mov dword [esp + 0x58], eax
call fcn.101e3600
mov eax, dword [0x1029a390]
add esp, 0xc
mov dword [esp + 0x5c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x8c], 0
test eax, eax
je 0x100c7270
inc dword [eax + 0x374]
push dword [0x1029a394]
push 0x40000
call fcn.100a77d0
add esp, 8
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x84]
push eax
call fcn.100b82f0
mov ecx, dword [esp + 0x3c]
xor eax, eax
movss xmm0, dword [0x1026bac0]
xor esi, esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], esi
test ecx, ecx
jle 0x100c775d
mov eax, dword [esp + 0x8c]
xor edx, edx
mov edi, dword [esp + 0x44]
mov dword [esp + 0x48], eax
add edi, 0x48
mov eax, dword [esp + 0x84]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x78], edx
mov dword [esp + 0x28], edi
mov dword [esp + 0x70], ecx
mov ecx, dword [eax + 0x54]
add ecx, edx
mov edx, dword [edi - 0x10]
test edx, edx
je 0x100c772e
mov eax, esi
add esi, edx
shl eax, 4
add eax, dword [esp + 0x4c]
mov dword [edi - 0x20], eax
movss xmm1, dword [ecx + 0x44]
ucomiss xmm1, xmm0
mov dword [esp + 0x2c], esi
movss dword [esp + 0x6c], xmm1
lahf
test ah, 0x44
jnp 0x100c736c
mov byte [esp + 0x35], 1
xor esi, esi
movd xmm0, esi
mov eax, esi
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1026c3b0]
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
call fcn.10209560
movss xmm1, dword [esp + 0x6c]
mov edx, 0xff
cmp eax, edx
movzx ecx, al
cmovbe edx, ecx
mov byte [esp + esi + 0xe0], dl
inc esi
cmp esi, 0x100
jb 0x100c7324
jmp 0x100c7371
mov byte [esp + 0x35], 0
cmp dword [edi], 0
mov eax, dword [esp + 0x20]
mov dword [esp + 0x74], 0
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x80], ecx
jle 0x100c772e
xor esi, esi
xor ecx, ecx
mov dword [esp + 0x30], esi
mov dword [esp + 0x6c], ecx
nop dword [eax]
mov eax, dword [edi + 8]
add eax, ecx
mov dword [esp + 0x18], eax
push dword [eax + 0x14]
push dword [edi - 0x30]
call fcn.10183e80
add esp, 8
test eax, eax
je 0x100c7707
push dword [edi - 0x28]
push eax
push dword [edi - 0x30]
call fcn.10184840
add esp, 0xc
test eax, eax
jne 0x100c7707
mov eax, dword [edi - 0x30]
mov esi, dword [eax + 0x54]
mov eax, dword [edi - 0x2c]
test al, 0x20
je 0x100c73ef
push esi
call fcn.1018bff0
mov eax, dword [edi - 0x2c]
add esp, 4
test al, 0x40
je 0x100c73fc
push esi
call fcn.1018c0f0
add esp, 4
lea eax, [esi + 0x18]
test eax, eax
je 0x100c7703
mov eax, dword [edi - 0x30]
push dword [edi - 0x24]
mov eax, dword [eax + 0x54]
push eax
mov dword [esp + 0x58], eax
call fcn.10186d30
add esp, 8
test eax, eax
je 0x100c7432
mov eax, dword [esp + 0x18]
xor edi, edi
mov dword [esp + 0x1c], edi
mov esi, dword [eax + 4]
mov ecx, dword [eax]
jmp 0x100c7499
mov eax, dword [edi - 0x30]
mov edx, dword [esp + 0x28]
mov edi, dword [eax + 0x54]
mov eax, dword [esp + 0x18]
add edi, 0x4c
mov dword [esp + 0x1c], edi
mov ecx, dword [edi + 4]
mov dword [eax], ecx
mov esi, dword [edi]
mov edi, dword [esp + 0x18]
mov dword [eax + 4], esi
mov eax, dword [edx - 0x30]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x64]
mov dword [edi + 8], eax
mov eax, dword [edx - 0x30]
mov edx, edi
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x68]
neg eax
mov dword [edx + 0xc], eax
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x40]
add eax, 0x3f
and eax, 0xffffffc0
cdq
and edx, 0x3f
add eax, edx
sar eax, 6
movd xmm0, eax
mov eax, edi
mov edi, dword [esp + 0x1c]
cvtdq2ps xmm0, xmm0
movss dword [eax + 0x10], xmm0
mov edx, dword [esp + 0x5c]
imul ecx, esi
mov dword [esp + 0x68], ecx
lea eax, [ecx + edx]
cmp eax, 0x40000
jle 0x100c750d
mov eax, dword [0x1029a390]
mov dword [esp + 0x5c], 0
test eax, eax
je 0x100c74c5
inc dword [eax + 0x374]
push dword [0x1029a394]
push 0x40000
call fcn.100a77d0
add esp, 8
mov dword [esp + 0x50], eax
lea eax, [esp + 0x50]
lea ecx, [esp + 0x84]
push eax
call fcn.100b82f0
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x48], eax
jmp 0x100c7511
mov eax, dword [esp + 0x48]
add dword [esp + 0x5c], ecx
xor ecx, ecx
mov esi, dword [esp + 0x7c]
mov esi, dword [eax + esi*4 - 4]
lea eax, [esp + 0xe0]
add esi, edx
cmp byte [esp + 0x35], cl
mov edx, dword [esp + 0x18]
cmove eax, ecx
mov dword [esp + 0x60], esi
mov dword [esp + 0x50], eax
mov ecx, dword [edx]
mov dword [edx + 0x18], esi
mov edx, dword [edi]
mov dword [esp + 0x38], ecx
mov ecx, dword [edi + 4]
mov edi, dword [edi + 0xc]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x58], edx
mov dword [esp + 0x64], edi
mov eax, dword [ecx + 8]
movzx ecx, byte [ecx + 0x12]
sub ecx, 1
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x54]
je 0x100c7614
sub dword [esp + 0x68], 1
jne 0x100c76b2
test eax, eax
jne 0x100c75b6
test edx, edx
je 0x100c76b2
push ecx
push edi
push esi
call fcn.101e3770
add edi, dword [esp + 0x28]
add esp, 0xc
add esi, dword [esp + 0x38]
sub dword [esp + 0x58], 1
mov ecx, dword [esp + 0x54]
jne 0x100c7593
jmp 0x100c76b2
test edx, edx
je 0x100c76b2
mov eax, dword [esp + 0x38]
test ecx, ecx
je 0x100c75f8
mov edx, dword [esp + 0x54]
mov ecx, esi
sub edi, esi
mov esi, dword [esp + 0x50]
movzx eax, byte [edi + ecx]
lea ecx, [ecx + 1]
mov al, byte [eax + esi]
mov byte [ecx - 1], al
sub edx, 1
jne 0x100c75d2
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x64]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x38]
add edi, dword [esp + 0x1c]
add esi, eax
sub edx, 1
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], esi
mov dword [esp + 0x58], edx
jne 0x100c75c2
jmp 0x100c76b2
test eax, eax
je 0x100c762e
mov cl, byte [eax]
mov al, byte [eax + 0xff]
mov byte [esp + 0x36], cl
mov ecx, dword [esp + 0x54]
mov byte [esp + 0x37], al
jmp 0x100c7638
mov byte [esp + 0x36], 0
mov byte [esp + 0x37], 0xff
test edx, edx
je 0x100c76b2
mov eax, dword [esp + 0x58]
xor edx, edx
mov byte [esp + 0x17], 0
test ecx, ecx
je 0x100c7695
nop dword [eax + eax]
mov esi, edx
and esi, 7
jne 0x100c765d
mov al, byte [edi]
mov byte [esp + 0x17], al
cmp byte [esp + 0x17], 0
movzx eax, byte [esp + 0x37]
movzx ecx, byte [esp + 0x36]
cmovl ecx, eax
mov eax, dword [esp + 0x60]
shl byte [esp + 0x17], 1
mov byte [edx + eax], cl
inc edx
mov ecx, dword [esp + 0x54]
lea eax, [edi + 1]
test esi, esi
cmovne eax, edi
mov edi, eax
cmp edx, ecx
jb 0x100c7650
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x64]
add edi, dword [esp + 0x1c]
add esi, dword [esp + 0x38]
sub eax, 1
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], esi
mov dword [esp + 0x58], eax
jne 0x100c7640
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x80]
movzx edx, ax
mov eax, dword [edi - 0x20]
movzx ecx, word [esi]
mov edi, dword [esp + 0x30]
add cx, dx
mov word [eax + edi + 4], cx
mov edi, dword [esp + 0x28]
movzx ecx, word [esi + 4]
mov esi, dword [esp + 0x30]
add cx, dx
mov eax, dword [edi - 0x20]
mov word [eax + esi + 6], cx
mov eax, dword [edi - 0x20]
movzx ecx, word [eax + esi + 6]
movzx eax, word [eax + esi + 4]
imul ecx, eax
add dword [esp + 0x24], ecx
jmp 0x100c7707
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x74]
add esi, 0x10
mov ecx, dword [esp + 0x6c]
inc eax
add ecx, 0x1c
mov dword [esp + 0x74], eax
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x30], esi
cmp eax, dword [edi]
jl 0x100c73a0
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x78]
add edi, 0x54
movss xmm0, dword [0x1026bac0]
add edx, 0x78
sub dword [esp + 0x70], 1
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x28], edi
mov dword [esp + 0x78], edx
jne 0x100c72e7
mov eax, dword [esp + 0x24]
jmp 0x100c7773
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x7c], ecx
mov edi, dword [esp + 0x20]
mov esi, dword [edi + 0xc]
mov dword [edi + 0x20], 0
test esi, esi
jg 0x100c77e7
movd xmm0, eax
xorps xmm1, xmm1
cvtdq2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
ucomisd xmm1, xmm0
ja 0x100c779e
sqrtsd xmm0, xmm0
jmp 0x100c77a3
call fcn.1020bb20
cvtsd2ss xmm0, xmm0
cvttss2si eax, xmm0
inc eax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, dword [0x1026bdb8]
jb 0x100c77c3
mov esi, 0x1000
jmp 0x100c77e7
comiss xmm0, dword [0x1026bdb0]
jb 0x100c77d3
mov esi, 0x800
jmp 0x100c77e7
comiss xmm0, dword [0x1026bd94]
mov esi, 0x200
mov eax, 0x400
cmovae esi, eax
mov dword [edi + 0x1c], esi
xor ecx, ecx
sub esi, dword [edi + 0x10]
mov dword [esp + 0x64], ecx
test esi, esi
jle 0x100c7830
cmp esi, 8
mov eax, esi
mov edx, 8
cmovl eax, edx
test eax, eax
jle 0x100c7830
mov ecx, dword [0x1029a390]
test ecx, ecx
je 0x100c7818
inc dword [ecx + 0x374]
push dword [0x1029a394]
shl eax, 3
push eax
call fcn.100a77d0
add esp, 8
mov dword [esp + 0x64], eax
mov ecx, eax
mov edx, dword [edi + 0x1c]
push esi
push ecx
push ecx
lea ecx, [esp + 0xbc]
call fcn.100c6aa0
add esp, 0xc
lea edx, [esp + 0xb0]
mov ecx, edi
call fcn.100c4020
mov esi, dword [esp + 0x3c]
test esi, esi
jle 0x100c78d4
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x3c]
add esi, 0x38
mov dword [esp + 0x2c], eax
nop word [eax + eax]
mov eax, dword [esi]
test eax, eax
je 0x100c78c2
mov edx, dword [esi - 0x10]
lea ecx, [esp + 0xb0]
push eax
call fcn.1002f3a0
xor edi, edi
add esp, 4
cmp dword [esi], edi
jle 0x100c78c2
xor edx, edx
mov eax, dword [esi - 0x10]
cmp dword [eax + edx + 0xc], 0
je 0x100c78ba
movzx ecx, word [eax + edx + 0xa]
movzx eax, word [eax + edx + 6]
add ecx, eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x20]
cmp eax, ecx
cmovge ecx, eax
mov eax, dword [esp + 0x20]
mov dword [eax + 0x20], ecx
inc edi
add edx, 0x10
cmp edi, dword [esi]
jl 0x100c7891
add esi, 0x54
sub dword [esp + 0x2c], 1
jne 0x100c7870
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x3c]
test byte [edi + 4], 1
mov eax, dword [edi + 0x20]
jne 0x100c7902
lea ecx, [eax - 1]
mov eax, ecx
sar eax, 1
or ecx, eax
mov eax, ecx
sar eax, 2
or ecx, eax
mov eax, ecx
sar eax, 4
or ecx, eax
mov eax, ecx
sar eax, 8
or ecx, eax
mov eax, ecx
sar eax, 0x10
or eax, ecx
mov ecx, dword [edi + 0x1c]
inc eax
movss xmm2, dword [0x1026bac0]
movaps xmm1, xmm2
mov dword [edi + 0x20], eax
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
imul ecx, eax
divss xmm1, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov eax, dword [0x1029a390]
movss dword [edi + 0x24], xmm1
divss xmm2, xmm0
movss dword [edi + 0x28], xmm2
test eax, eax
je 0x100c7946
inc dword [eax + 0x374]
push dword [0x1029a394]
push ecx
call fcn.100a77d0
mov ecx, dword [edi + 0x20]
imul ecx, dword [edi + 0x1c]
mov dword [edi + 0x14], eax
push ecx
push 0
push eax
call fcn.101e3600
add esp, 0x14
test esi, esi
jle 0x100c7c9a
mov ecx, dword [esp + 0x44]
xor eax, eax
movss xmm3, dword [0x1026ba54]
add ecx, 8
mov edx, esi
mov dword [esp + 0x68], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x38], edx
nop
cmp dword [ecx + 0x30], 0
je 0x100c7c7f
mov esi, dword [edi + 0x54]
movss xmm0, dword [ecx - 4]
add esi, eax
movss dword [esp + 0x80], xmm0
movss xmm0, dword [ecx]
mov dword [esp + 0x70], esi
cmp byte [esi + 0x3c], 0
mov edi, dword [esi + 0x74]
mov dword [esp + 0x5c], edi
movss dword [esp + 0x2c], xmm0
jne 0x100c7a06
mov ecx, edi
call fcn.100c4690
mov eax, dword [esi + 0x10]
movss xmm0, dword [esp + 0x80]
movss xmm1, dword [esp + 0x2c]
movss xmm3, dword [0x1026ba54]
mov ecx, dword [esp + 0x30]
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x20]
mov dword [edi + 0x3c], esi
mov dword [edi + 0x38], eax
movss dword [edi + 0x4c], xmm0
movss dword [edi + 0x50], xmm1
jmp 0x100c7a0b
movss xmm0, dword [edi + 0x4c]
inc word [edi + 0x40]
addss xmm0, xmm3
cmp dword [ecx + 0x30], 0
mov edi, dword [esp + 0x20]
movss xmm2, dword [esi + 0x28]
movss dword [esp + 0x74], xmm2
cvttss2si eax, xmm0
mov edx, dword [edi + 0x10]
mov dword [esp + 0x54], edx
mov dword [esp + 0x6c], 0
movd xmm6, eax
cvtdq2ps xmm6, xmm6
addss xmm6, dword [esi + 0x2c]
movss dword [esp + 0x50], xmm6
jle 0x100c7c70
xor esi, esi
mov dword [esp + 0x28], 0
mov dword [esp + 0x18], esi
nop
mov eax, dword [ecx + 0x20]
add eax, dword [esp + 0x28]
mov edi, dword [ecx + 0x48]
mov dword [esp + 0x2c], edi
movzx ecx, word [eax + 8]
movzx eax, word [eax + 0xa]
add ecx, edx
add eax, edx
mov dword [esp + 0x78], ecx
mov ecx, dword [edi + esi]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x60], ecx
mov edx, dword [eax + 0x1c]
mov eax, dword [edi + esi + 0x18]
mov esi, edx
imul esi, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x80], edx
add esi, dword [eax + 0x14]
mov eax, dword [esp + 0x18]
add esi, dword [esp + 0x78]
mov edi, dword [edi + eax + 4]
mov eax, dword [esp + 0x24]
test edi, edi
jle 0x100c7b12
push ecx
push eax
push esi
call fcn.101e3770
mov eax, dword [esp + 0x30]
dec edi
mov ecx, dword [esp + 0x6c]
add esp, 0xc
add esi, dword [esp + 0x80]
add eax, ecx
mov dword [esp + 0x24], eax
test edi, edi
jg 0x100c7ac1
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
movss xmm2, dword [esp + 0x74]
movss xmm3, dword [0x1026ba54]
mov edi, dword [esi + eax + 4]
mov ecx, dword [esi + eax]
mov edx, dword [edx + 0x1c]
movss xmm6, dword [esp + 0x50]
jmp 0x100c7b1a
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
movss xmm1, dword [esi + eax + 0x10]
mov eax, dword [esp + 0x70]
movss xmm5, dword [eax + 0x34]
comiss xmm5, xmm1
ja 0x100c7b37
movss xmm5, dword [eax + 0x38]
minss xmm5, xmm1
ucomiss xmm1, xmm5
movaps xmm0, xmm2
lahf
test ah, 0x44
jnp 0x100c7b67
mov eax, dword [esp + 0x70]
movaps xmm0, xmm5
subss xmm0, xmm1
cmp byte [eax + 0x1c], 0
mulss xmm0, xmm3
je 0x100c7b63
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, xmm2
mov eax, dword [esp + 0x18]
sub esp, 0x1c
movd xmm2, edx
mov edx, dword [esp + 0x94]
cvtdq2ps xmm2, xmm2
movd xmm4, dword [esi + eax + 8]
movd xmm3, dword [esi + eax + 0xc]
mov eax, dword [esp + 0x3c]
cvtdq2ps xmm4, xmm4
movd xmm1, dword [eax + 0x20]
mov eax, dword [esp + 0x38]
addss xmm4, xmm0
add eax, edi
movss dword [esp + 0x18], xmm5
cvtdq2ps xmm1, xmm1
movd xmm0, eax
lea eax, [ecx + edx]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm3, xmm3
divss xmm0, xmm1
addss xmm3, xmm6
movss dword [esp + 0x14], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov eax, dword [esp + 0x34]
movzx eax, word [esi + eax + 0x14]
divss xmm0, xmm2
movss dword [esp + 0x10], xmm0
movd xmm0, dword [esp + 0x38]
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [esp + 0xc], xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
divss xmm0, xmm2
movaps xmm2, xmm4
movss dword [esp + 8], xmm0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
addss xmm0, xmm3
movss dword [esp + 4], xmm0
movd xmm0, ecx
mov ecx, dword [esp + 0x78]
cvtdq2ps xmm0, xmm0
addss xmm0, xmm4
movss dword [esp], xmm0
push eax
call fcn.100c4b70
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x30]
inc eax
mov esi, dword [esp + 0x18]
add dword [esp + 0x28], 0x10
add esi, 0x1c
movss xmm2, dword [esp + 0x74]
movss xmm3, dword [0x1026ba54]
movss xmm6, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x18], esi
cmp eax, dword [ecx + 0x30]
jl 0x100c7a60
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x38]
mov dword [ecx + 0x20], 0
add ecx, 0x54
add eax, 0x78
sub edx, 1
mov dword [esp + 0x30], ecx
mov dword [esp + 0x68], eax
mov dword [esp + 0x38], edx
jne 0x100c7990
xor esi, esi
cmp dword [esp + 0x7c], esi
jle 0x100c7cd6
mov edi, dword [esp + 0x48]
mov ecx, dword [edi + esi*4]
test ecx, ecx
je 0x100c7cbc
mov eax, dword [0x1029a390]
test eax, eax
je 0x100c7cbc
dec dword [eax + 0x374]
push dword [0x1029a394]
push ecx
call fcn.100a77e0
inc esi
add esp, 8
cmp esi, dword [esp + 0x7c]
jl 0x100c7ca6
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x3c]
test eax, eax
jle 0x100c7d59
mov esi, dword [esp + 0x44]
add esi, 0x18
nop dword [eax]
mov ecx, dword [esi + 0x38]
test ecx, ecx
je 0x100c7d15
mov eax, dword [0x1029a390]
test eax, eax
je 0x100c7d06
dec dword [eax + 0x374]
push dword [0x1029a394]
push ecx
call fcn.100a77e0
add esp, 8
mov ecx, dword [esi + 0x2c]
test ecx, ecx
je 0x100c7d3a
mov eax, dword [0x1029a390]
test eax, eax
je 0x100c7d2b
dec dword [eax + 0x374]
push dword [0x1029a394]
push ecx
call fcn.100a77e0
add esp, 8
mov eax, dword [esi]
test eax, eax
je 0x100c7d4f
push eax
call fcn.101839e0
add esp, 4
mov dword [esi], 0
add esi, 0x54
sub dword [esp + 0x3c], 1
jne 0x100c7cf0
mov ecx, edi
call fcn.100c4120
mov ecx, dword [esp + 0x64]
mov byte [esp + 0x17], 1
test ecx, ecx
je 0x100c7d8b
mov eax, dword [0x1029a390]
test eax, eax
je 0x100c7d7c
dec dword [eax + 0x374]
push dword [0x1029a394]
push ecx
call fcn.100a77e0
add esp, 8
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x100c7db1
mov eax, dword [0x1029a390]
test eax, eax
je 0x100c7da2
dec dword [eax + 0x374]
push dword [0x1029a394]
push ecx
call fcn.100a77e0
add esp, 8
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x100c7dd7
mov eax, dword [0x1029a390]
test eax, eax
je 0x100c7dc8
dec dword [eax + 0x374]
push dword [0x1029a394]
push ecx
call fcn.100a77e0
add esp, 8
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x100c7dfd
mov eax, dword [0x1029a390]
test eax, eax
je 0x100c7dee
dec dword [eax + 0x374]
push dword [0x1029a394]
push ecx
call fcn.100a77e0
add esp, 8
mov eax, dword [esp + 0x44]
test eax, eax
je 0x100c7e24
mov ecx, dword [0x1029a390]
test ecx, ecx
je 0x100c7e15
dec dword [ecx + 0x374]
push dword [0x1029a394]
push eax
call fcn.100a77e0
add esp, 8
mov al, byte [esp + 0x17]
pop edi
pop esi
mov esp, ebp
pop ebp
ret