Function at 0x10020c10
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10033488
mov eax, dword fs:[0]
push eax
sub esp, 0x94
mov eax, dword [0x1003f00c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x40], ebx
mov ecx, dword [ebx + 4]
mov dword [ebx], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 0
test ecx, ecx
je 0x10020c83
mov eax, dword [0x1003f068]
push ecx
dec dword [eax + 0x310]
mov eax, dword [eax + 0xc0]
call eax
add esp, 4
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x10020ca1
mov eax, dword [0x1003f068]
push ecx
dec dword [eax + 0x310]
mov eax, dword [eax + 0xc0]
call eax
add esp, 4
mov ecx, dword [ebx + 0x2c]
mov eax, dword [0x1003f068]
shl ecx, 4
sub ecx, dword [ebx + 0x2c]
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
inc dword [eax + 0x310]
mov eax, dword [eax + 0xbc]
shl ecx, 2
push ecx
call eax
xor esi, esi
mov dword [ebp - 0x60], eax
add esp, 4
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x48], esi
cmp dword [ebx + 0x2c], esi
jle 0x10020e3d
xor edx, edx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x44], edx
mov eax, dword [ebx + 0x34]
add eax, edx
mov dword [ebp - 0x30], eax
mov esi, dword [eax]
mov edi, dword [eax + 0xc]
mov al, byte [esi]
cmp al, 0x31
jne 0x10020d16
cmp byte [esi + 1], 0
jne 0x10020d16
cmp byte [esi + 2], 0
jne 0x10020d16
cmp byte [esi + 3], 0
je 0x10020d55
cmp al, 0x74
jne 0x10020d2c
cmp byte [esi + 1], 0x79
jne 0x10020d2c
cmp byte [esi + 2], 0x70
jne 0x10020d2c
cmp byte [esi + 3], 0x31
je 0x10020d55
cmp al, 0x4f
jne 0x10020d41
cmp byte [esi + 1], 0x54
jne 0x10020d5b
cmp byte [esi + 2], 0x54
jne 0x10020d5b
cmp byte [esi + 3], al
jmp 0x10020d53
test al, al
jne 0x10020d5b
cmp byte [esi + 1], 1
jne 0x10020d5b
cmp byte [esi + 2], al
jne 0x10020d5b
cmp byte [esi + 3], al
jne 0x10020d5b
neg edi
sbb edi, edi
jmp 0x10020dc3
cmp al, 0x74
jne 0x10020dc0
cmp byte [esi + 1], al
jne 0x10020dc0
cmp byte [esi + 2], 0x63
jne 0x10020dc0
cmp byte [esi + 3], 0x66
jne 0x10020dc0
lea ecx, [esi + 4]
call fcn.10019370
cmp eax, 0x10000
je 0x10020d8e
lea ecx, [esi + 4]
call fcn.10019370
cmp eax, 0x20000
jne 0x10020dc0
movzx ecx, byte [esi + 8]
movzx eax, byte [esi + 9]
shl ecx, 8
add ecx, eax
movzx eax, byte [esi + 0xa]
shl ecx, 8
add ecx, eax
movzx eax, byte [esi + 0xb]
shl ecx, 8
add ecx, eax
cmp edi, ecx
jge 0x10020dc0
add edi, 3
lea ecx, [esi + edi*4]
call fcn.10019370
mov edi, eax
jmp 0x10020dc3
or edi, 0xffffffff
mov edx, esi
mov esi, dword [ebp - 0x2c]
push edi
mov ecx, esi
call fcn.10019430
add esp, 4
test eax, eax
je 0x10020e53
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 0x28]
test edx, edx
jne 0x10020ded
mov dword [eax + 0x28], 0x1003b228
mov edx, 0x1003b228
cmp word [edx], 0
je 0x10020e1b
mov ebx, dword [ebp - 0x20]
movzx eax, word [edx + 2]
test ax, ax
je 0x10020e15
inc dword [ebp - 0x28]
mov ecx, eax
movzx eax, word [edx]
inc ebx
add edx, 4
sub ecx, eax
add ebx, ecx
cmp word [edx], 0
jne 0x10020df6
mov dword [ebp - 0x20], ebx
mov ebx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x48]
add esi, 0x3c
mov edx, dword [ebp - 0x44]
inc ecx
add edx, 0x54
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x2c], esi
cmp ecx, dword [ebx + 0x2c]
jl 0x10020cf1
mov esi, dword [ebp - 0x20]
mov edi, dword [ebx + 0x14]
test edi, edi
jg 0x10020e7c
cmp esi, 0xfa0
jle 0x10020e5a
mov edi, 0x1000
jmp 0x10020e7c
xor al, al
jmp 0x100217ee
cmp esi, 0x7d0
jle 0x10020e69
mov edi, 0x800
jmp 0x10020e7c
cmp esi, 0x3e8
mov edi, 0x200
mov eax, 0x400
cmovg edi, eax
mov eax, dword [0x1003f068]
mov dword [ebx + 0xc], edi
mov dword [ebx + 0x10], 0
push 0x30
inc dword [eax + 0x310]
mov eax, dword [eax + 0xbc]
call eax
mov edx, dword [0x1003f068]
lea ecx, [edi*8 - 8]
add esp, 4
mov dword [ebp - 0x24], eax
inc dword [edx + 0x310]
push ecx
mov ecx, dword [edx + 0xbc]
call ecx
mov ecx, dword [ebp - 0x24]
add esp, 4
mov edx, eax
test ecx, ecx
je 0x10020f10
test edx, edx
je 0x10020f0d
lea eax, [edi - 1]
mov dword [ebp - 0x64], edx
push eax
push edx
push ecx
mov edx, eax
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x7c], 0x8000
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x74], 1
mov dword [ebp - 0x78], edi
call fcn.10018d30
add esp, 0xc
jmp 0x10020f34
push ecx
jmp 0x10020f15
test edx, edx
je 0x10020f2b
push edx
mov eax, dword [0x1003f068]
dec dword [eax + 0x310]
mov eax, dword [eax + 0xc0]
call eax
add esp, 4
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x24], eax
xorps xmm0, xmm0
mov dword [ebp - 0x14], 0
movq qword [ebp - 0x1c], xmm0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x14], 0
lea eax, [ebp - 0x1c]
mov dword [ebp - 4], 0
push eax
push 0
mov ecx, ebx
call fcn.10021820
mov edi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x24]
push edi
mov dword [ebp - 0x50], 1
mov dword [ebp - 0x54], 1
call fcn.100191b0
add esp, 4
test edi, edi
jle 0x10020fb7
mov edx, dword [ebp - 0x14]
add edx, 0xa
cmp dword [edx + 2], 0
je 0x10020faf
movzx ecx, word [edx - 4]
movzx eax, word [edx]
add ecx, eax
cmp dword [ebx + 0x10], ecx
cmovge ecx, dword [ebx + 0x10]
mov dword [ebx + 0x10], ecx
add edx, 0x10
sub edi, 1
jne 0x10020f96
mov eax, dword [0x1003f068]
lea edi, [esi*8]
sub edi, esi
mov dword [ebp - 0x38], 0
shl edi, 2
push edi
inc dword [eax + 0x310]
mov eax, dword [eax + 0xbc]
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x4c], 0
call eax
mov ecx, dword [0x1003f068]
add esp, 4
shl esi, 4
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x20], esi
inc dword [ecx + 0x310]
mov ecx, dword [ecx + 0xbc]
push esi
call ecx
mov ecx, dword [0x1003f068]
add esp, 4
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x28]
inc dword [ecx + 0x310]
mov ecx, dword [ecx + 0xbc]
lea esi, [eax + eax*2]
shl esi, 3
push esi
call ecx
add esp, 4
mov dword [ebp - 0x48], eax
push edi
push 0
push dword [ebp - 0x44]
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push dword [ebp - 0x20]
push 0
push dword [ebp - 0x2c]
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push esi
push 0
push dword [ebp - 0x48]
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebp - 0x3c], 0
cmp dword [ebx + 0x2c], 0
jle 0x100211fa
mov esi, dword [ebp - 0x60]
xor eax, eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x34], esi
nop
mov ecx, dword [ebx + 0x34]
xor edi, edi
add ecx, eax
mov dword [ebp - 0x58], edi
xor ebx, ebx
mov dword [ebp - 0x28], ecx
mov edx, dword [ecx + 0x28]
movzx eax, word [edx]
test ax, ax
je 0x100210c3
nop word [eax + eax]
movzx ecx, word [edx + 2]
test cx, cx
je 0x100210bd
add edx, 4
movzx eax, ax
sub ecx, eax
inc edi
add edi, ecx
inc ebx
movzx eax, word [edx]
test ax, ax
jne 0x100210a0
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x58], edi
mov edx, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x48]
mov dword [esi + 0x38], ebx
lea eax, [edx + edx*2]
add edx, ebx
lea eax, [edi + eax*8]
mov dword [ebp - 0x4c], edx
xor edi, edi
mov dword [ebp - 0x20], eax
mov dword [esi + 0x34], eax
test ebx, ebx
jle 0x10021140
xor eax, eax
mov dword [ebp - 0x20], eax
mov edx, dword [ecx + 0x28]
mov esi, dword [esi + 0x34]
add esi, eax
mov eax, dword [ecx + 0x10]
mov dword [esi], eax
movzx eax, word [edx + edi*4]
mov dword [esi + 4], eax
movzx eax, word [edx + edi*4]
movzx ecx, word [edx + edi*4 + 2]
inc edi
mov edx, dword [ebp - 0x38]
sub ecx, eax
inc ecx
add dword [ebp - 0x38], ecx
mov dword [esi + 0xc], ecx
mov ecx, dword [ebp - 0x28]
lea eax, [edx*8]
sub eax, edx
mov edx, dword [ebp - 0x44]
lea eax, [edx + eax*4]
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x20]
mov esi, dword [ebp - 0x34]
add eax, 0x18
mov dword [ebp - 0x20], eax
cmp edi, ebx
jl 0x100210e8
mov eax, dword [esi + 0x34]
mov ebx, dword [esi + 0x38]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x5c]
mov eax, ecx
mov edx, dword [ebp - 0x2c]
add ecx, dword [ebp - 0x58]
mov edi, dword [ebp - 0x50]
shl eax, 4
add edx, eax
mov dword [ebp - 0x5c], ecx
mov eax, dword [ebp - 0x28]
mov dword [esi + 0x30], edx
push edx
push ebx
mov ecx, dword [eax + 0x18]
mov edx, esi
mov eax, dword [eax + 0x14]
cmp eax, 8
push dword [ebp - 0x20]
cmovbe edi, eax
mov eax, dword [ebp - 0x54]
cmp ecx, 8
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x70], edi
cmovbe eax, ecx
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x6c], eax
call fcn.1001d030
mov edx, dword [esi + 0x30]
add esp, 0xc
mov ecx, dword [ebp - 0x24]
mov ebx, eax
push ebx
call fcn.100191b0
add esp, 4
test ebx, ebx
jle 0x100211d8
mov edi, dword [ebp - 0x40]
xor edx, edx
nop dword [eax]
mov eax, dword [esi + 0x30]
cmp dword [eax + edx + 0xc], 0
je 0x100211d0
movzx ecx, word [eax + edx + 0xa]
movzx eax, word [eax + edx + 6]
add ecx, eax
cmp dword [edi + 0x10], ecx
cmovge ecx, dword [edi + 0x10]
mov dword [edi + 0x10], ecx
add edx, 0x10
sub ebx, 1
jne 0x100211b0
mov ecx, dword [ebp - 0x3c]
add esi, 0x3c
mov ebx, dword [ebp - 0x40]
inc ecx
mov eax, dword [ebp - 0x30]
add eax, 0x54
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x34], esi
cmp ecx, dword [ebx + 0x2c]
jl 0x10021080
mov ecx, dword [ebx + 0x10]
dec ecx
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 [ebx + 0xc]
inc eax
mov dword [ebx + 0x10], eax
imul ecx, eax
mov eax, dword [0x1003f068]
inc dword [eax + 0x310]
mov eax, dword [eax + 0xbc]
push ecx
call eax
mov ecx, dword [ebx + 0xc]
add esp, 4
imul ecx, dword [ebx + 0x10]
mov dword [ebx + 4], eax
push ecx
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [ebx + 4]
add esp, 0xc
cmp dword [ebx + 0x2c], 0
mov dword [ebp - 0x68], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x30], 0
jle 0x100212e6
mov esi, dword [ebp - 0x60]
xor ecx, ecx
mov edx, dword [ebp - 0x50]
add esi, 0x30
mov edi, dword [ebp - 0x54]
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebx + 0x34]
push dword [esi]
add eax, ecx
push dword [esi + 8]
push dword [esi + 4]
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
cmp eax, 8
cmovbe edx, eax
cmp ecx, 8
mov dword [ebp - 0x70], edx
lea edx, [esi - 0x30]
cmovbe edi, ecx
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x6c], edi
call fcn.1001d380
mov eax, dword [ebp - 0x30]
lea esi, [esi + 0x3c]
mov ecx, dword [ebp - 0x3c]
inc eax
mov dword [esi - 0x3c], 0
add ecx, 0x54
add esp, 0xc
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x3c], ecx
cmp eax, dword [ebx + 0x2c]
jge 0x100212de
mov edi, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x70]
jmp 0x10021281
mov esi, dword [ebp - 0x84]
jmp 0x100212e9
mov esi, dword [ebp - 0x24]
cmp dword [ebp - 0x64], 0
mov eax, dword [0x1003f068]
je 0x100212fa
dec dword [eax + 0x310]
push dword [ebp - 0x64]
mov eax, dword [eax + 0xc0]
call eax
mov eax, dword [0x1003f068]
add esp, 4
test esi, esi
je 0x10021317
dec dword [eax + 0x310]
mov eax, dword [eax + 0xc0]
push esi
call eax
mov ecx, dword [ebp - 0x2c]
add esp, 4
mov eax, dword [0x1003f068]
test ecx, ecx
je 0x10021335
dec dword [eax + 0x310]
mov eax, dword [eax + 0xc0]
push ecx
call eax
add esp, 4
mov dword [ebp - 0x5c], 0
cmp dword [ebx + 0x2c], 0
jle 0x10021760
mov edi, dword [ebp - 0x60]
xor ecx, ecx
movss xmm3, dword [0x1003b480]
add edi, 4
movss xmm2, dword [0x1003b4a8]
mov edx, 0x100
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x28], edi
mov esi, dword [ebp - 0x28]
mov eax, dword [ebx + 0x34]
mov edi, dword [edi + 0x18]
add eax, ecx
mov dword [ebp - 0x24], eax
mov esi, dword [esi]
mov eax, dword [eax + 0x50]
mov dword [ebp - 0x20], eax
movzx ecx, byte [edi + esi + 6]
movsx ecx, cx
movsx eax, dx
movzx edx, byte [edi + esi + 5]
imul ecx, eax
movzx eax, byte [edi + esi + 7]
add cx, ax
mov eax, 0x100
movsx ebx, cx
movzx ecx, byte [edi + esi + 4]
cwde
movsx ecx, cx
imul ecx, eax
mov esi, dword [ebp - 0x20]
add dx, cx
movsx ecx, dx
mov eax, ecx
sub eax, ebx
movd xmm4, ecx
cvtdq2ps xmm4, xmm4
movd xmm0, eax
mov eax, dword [ebp - 0x24]
cvtdq2ps xmm0, xmm0
cmp byte [eax + 0x2c], 0
movss xmm1, dword [eax + 0x10]
divss xmm1, xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
mulss xmm4, xmm1
mulss xmm0, xmm1
movss dword [ebp - 0x34], xmm4
jne 0x1002143c
mov edi, dword [ebp - 0x40]
lea ecx, [esi + 0x28]
mov dword [esi + 0x24], edi
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], 0
mov eax, dword [eax + 0x10]
push 0
mov dword [esi], eax
movss dword [esi + 0x1c], xmm4
movss dword [esi + 0x20], xmm0
call fcn.10023380
movss xmm3, dword [0x1003b480]
movss xmm4, dword [ebp - 0x34]
movss xmm2, dword [0x1003b4a8]
mov eax, dword [ebp - 0x24]
inc dword [esi + 0x18]
cmp byte [eax + 0x2c], 0
je 0x1002145e
cmp byte [eax + 0x2d], 0
je 0x1002145e
subss xmm4, dword [esi + 0x1c]
mulss xmm4, xmm3
xorps xmm3, xmm3
movss dword [ebp - 0x34], xmm4
jmp 0x10021466
xorps xmm3, xmm3
movss dword [ebp - 0x34], xmm3
mov edi, dword [ebp - 0x28]
xor ebx, ebx
mov dword [esi + 0x34], 0
mov dword [ebp - 0x30], ebx
cmp dword [edi + 0x34], ebx
jle 0x10021721
xor ecx, ecx
mov dword [ebp - 0x3c], ecx
mov edx, dword [edi + 0x30]
add edx, ecx
xor ecx, ecx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x38], ecx
cmp dword [edx + 0xc], ecx
jle 0x10021703
xor edi, edi
nop dword [eax + eax]
mov ebx, dword [edx + 0x10]
movzx eax, word [edi + ebx]
test ax, ax
jne 0x100214c5
cmp word [edi + ebx + 4], ax
jne 0x100214c5
cmp word [edi + ebx + 2], ax
jne 0x100214c5
cmp word [edi + ebx + 6], ax
je 0x100216df
mov esi, dword [ebp - 0x24]
mov eax, dword [edx + 4]
add eax, ecx
mov dword [ebp - 0x54], eax
cmp byte [esi + 0x2c], 0
mov esi, dword [ebp - 0x20]
je 0x1002150e
movzx eax, ax
mov dword [ebp - 0x4c], eax
cmp eax, dword [esi + 0x48]
jge 0x10021503
mov edx, dword [ebp - 0x4c]
mov eax, dword [esi + 0x50]
mov eax, dword [eax + edx*4]
mov edx, dword [ebp - 0x2c]
cmp eax, 0xffffffff
je 0x10021503
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x30]
lea eax, [eax + ecx*8]
mov ecx, dword [ebp - 0x38]
jmp 0x10021506
mov eax, dword [esi + 0x34]
test eax, eax
jne 0x100216df
mov eax, dword [ebp - 0x40]
lea ecx, [esi + 0x28]
movaps xmm1, xmm2
movd xmm0, dword [eax + 0xc]
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
movd xmm0, dword [eax + 0x10]
cvtdq2ps xmm0, xmm0
movzx eax, word [edi + ebx]
divss xmm2, xmm0
movss xmm0, dword [edi + ebx + 8]
addss xmm0, xmm3
movss dword [ebp - 0x4c], xmm0
movss xmm0, dword [edi + ebx + 0xc]
addss xmm0, xmm3
movss dword [ebp - 0x50], xmm0
movss xmm0, dword [edi + ebx + 0x14]
addss xmm0, xmm3
movss dword [ebp - 0x8c], xmm0
movss xmm0, dword [edi + ebx + 0x18]
addss xmm0, xmm3
movss dword [ebp - 0x90], xmm0
movd xmm0, eax
movzx eax, word [edi + ebx + 2]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x94], xmm0
movd xmm0, eax
movzx eax, word [edi + ebx + 4]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm2
movss dword [ebp - 0x98], xmm0
movd xmm0, eax
movzx eax, word [edi + ebx + 6]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x9c], xmm0
movd xmm0, eax
mov eax, dword [esi + 0x28]
cvtdq2ps xmm0, xmm0
inc eax
push eax
mulss xmm0, xmm2
movss dword [ebp - 0xa0], xmm0
call fcn.10023380
mov eax, dword [esi + 0x28]
mov edx, dword [esi + 0x30]
movss xmm0, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x20]
movss xmm2, dword [ebp - 0x50]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x54]
movss xmm1, dword [ebp - 0x90]
movss dword [edx + ecx*8 - 0x20], xmm0
movss xmm0, dword [ebp - 0x8c]
movss xmm3, dword [0x1003b480]
movss dword [edx + ecx*8 - 0x18], xmm0
movss xmm0, dword [ebp - 0x94]
movss dword [edx + ecx*8 - 0x10], xmm0
movss xmm0, dword [ebp - 0x98]
movss dword [edx + ecx*8 - 0xc], xmm0
movss xmm0, dword [ebp - 0x9c]
movss dword [edx + ecx*8 - 8], xmm0
movss xmm0, dword [ebp - 0xa0]
movss dword [edx + ecx*8 - 4], xmm0
mov word [edx + ecx*8 - 0x28], ax
movss dword [edx + ecx*8 - 0x1c], xmm2
movss dword [edx + ecx*8 - 0x14], xmm1
movss xmm0, dword [esi + 0x1c]
addss xmm0, dword [ebp - 0x34]
addss xmm0, xmm3
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, xmm2
movss dword [edx + ecx*8 - 0x1c], xmm0
movss xmm0, dword [esi + 0x1c]
addss xmm0, dword [ebp - 0x34]
addss xmm0, xmm3
cvttss2si eax, xmm0
movd xmm0, eax
mov eax, dword [ebp - 0x24]
cvtdq2ps xmm0, xmm0
addss xmm0, xmm1
movss dword [edx + ecx*8 - 0x14], xmm0
movss xmm0, dword [edi + ebx + 0x10]
addss xmm0, dword [eax + 0x20]
movss dword [edx + ecx*8 - 0x24], xmm0
cmp byte [eax + 0x1c], 0
je 0x1002180a
addss xmm0, xmm3
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edx + ecx*8 - 0x24], xmm0
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
movss xmm2, dword [0x1003b4a8]
inc ecx
add edi, 0x1c
mov dword [ebp - 0x38], ecx
xorps xmm3, xmm3
cmp ecx, dword [edx + 0xc]
jl 0x100214a0
mov ebx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x3c]
inc ebx
movss xmm2, dword [0x1003b4a8]
add ecx, 0x18
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x3c], ecx
cmp ebx, dword [edi + 0x34]
jl 0x10021483
mov ecx, dword [eax + 0x50]
call fcn.100222f0
mov eax, dword [ebp - 0x5c]
add edi, 0x3c
mov ebx, dword [ebp - 0x40]
inc eax
mov ecx, dword [ebp - 0x58]
mov edx, 0x100
movss xmm3, dword [0x1003b480]
add ecx, 0x54
movss xmm2, dword [0x1003b4a8]
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x28], edi
cmp eax, dword [ebx + 0x2c]
jl 0x10021375
mov ecx, dword [ebp - 0x44]
mov eax, dword [0x1003f068]
test ecx, ecx
je 0x10021772
dec dword [eax + 0x310]
mov eax, dword [eax + 0xc0]
push ecx
call eax
mov ecx, dword [ebp - 0x48]
add esp, 4
mov eax, dword [0x1003f068]
test ecx, ecx
je 0x10021790
dec dword [eax + 0x310]
mov eax, dword [eax + 0xc0]
push ecx
call eax
mov ecx, dword [ebp - 0x60]
add esp, 4
mov eax, dword [0x1003f068]
test ecx, ecx
je 0x100217ae
dec dword [eax + 0x310]
mov eax, dword [eax + 0xc0]
push ecx
call eax
add esp, 4
lea eax, [ebp - 0x1c]
mov ecx, ebx
push eax
push 1
call fcn.10021820
mov dword [ebp - 4], 1
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x100217ec
mov eax, dword [0x1003f068]
push ecx
dec dword [eax + 0x310]
mov eax, dword [eax + 0xc0]
call eax
add esp, 4
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10031912
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x2c]
jmp 0x100216e2