Function at 0x10019550
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x58
push ebx
push ebp
mov eax, ecx
xor ebx, ebx
push esi
push edi
mov dword [esp + 0x48], eax
xor ebp, ebp
mov edi, dword [eax + 4]
call fcn.10019250
mov esi, eax
mov eax, dword [esp + 0x6c]
mov dword [eax], ebx
test esi, esi
js 0x10019e4e
movzx ecx, byte [esi + edi]
mov eax, 0x100
movzx edx, byte [esi + edi + 1]
cwde
movsx ecx, cx
imul ecx, eax
add dx, cx
movzx eax, dx
test ax, ax
jle 0x100199b9
cwde
lea edx, [edi + 0xa]
add edx, esi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x38], edx
mov dword [esp + 0x40], ebx
lea ebp, [eax + eax]
lea ecx, [esi + eax*2]
movzx eax, byte [ecx + edi + 0xa]
movzx ecx, byte [ecx + edi + 0xb]
add edi, 0xc
shl eax, 8
add eax, edi
movzx edi, byte [edx + ebp - 1]
add ecx, eax
mov eax, dword [0x10047020]
add ecx, ebp
add esi, ecx
movzx ecx, byte [edx + ebp - 2]
shl ecx, 8
inc dword [eax + 0x310]
inc ecx
add edi, ecx
mov ecx, dword [eax + 0xbc]
mov dword [esp + 0x2c], edi
lea edx, [edi + ebp]
lea eax, [edx*8]
sub eax, edx
add eax, eax
push eax
call ecx
mov ebx, eax
add esp, 4
mov dword [esp + 0x24], ebx
test ebx, ebx
je 0x10019e4e
lea eax, [ebp*8]
mov dword [esp + 0x44], 0
sub eax, ebp
xor cl, cl
add eax, eax
mov dword [esp + 0x3c], eax
test edi, edi
je 0x10019977
mov ebp, dword [esp + 0x2c]
lea edi, [ebx + 0xc]
add edi, eax
mov bl, cl
test cl, cl
jne 0x1001965c
mov bl, byte [esi]
mov dl, bl
and dl, 8
je 0x10019650
mov cl, byte [esi + 1]
xor eax, eax
test dl, dl
setne al
inc eax
add esi, eax
jmp 0x1001965e
dec cl
mov byte [edi], bl
add edi, 0xe
sub ebp, 1
jne 0x10019640
mov edi, dword [esp + 0x3c]
add edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x20], edi
nop dword [eax + eax]
mov dl, byte [edi + 0xc]
and dl, 0x10
test byte [edi + 0xc], 2
je 0x1001969f
mov al, byte [esi]
inc esi
movzx ecx, al
mov eax, ecx
neg eax
test dl, dl
cmove ecx, eax
add ebp, ecx
jmp 0x100196c1
test dl, dl
jne 0x100196c1
movzx ecx, byte [esi]
mov eax, 0x100
cwde
movsx ecx, cx
imul ecx, eax
movzx eax, byte [esi + 1]
add cx, ax
movsx eax, cx
add ebp, eax
add esi, 2
mov word [edi], bp
add edi, 0xe
sub ebx, 1
jne 0x10019680
mov eax, dword [esp + 0x20]
xor ebp, ebp
mov ebx, dword [esp + 0x24]
add eax, 2
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x34]
mov dword [esp + 0x3c], eax
nop dword [eax]
mov dl, byte [edi + 0xa]
and dl, 0x20
test byte [edi + 0xa], 4
je 0x1001970f
mov al, byte [esi]
inc esi
movzx ecx, al
mov eax, ecx
neg eax
test dl, dl
cmove ecx, eax
add ebp, ecx
jmp 0x10019731
test dl, dl
jne 0x10019731
movzx ecx, byte [esi]
mov eax, 0x100
cwde
movsx ecx, cx
imul ecx, eax
movzx eax, byte [esi + 1]
add cx, ax
movsx eax, cx
add ebp, eax
add esi, 2
mov word [edi], bp
add edi, 0xe
sub dword [esp + 0x3c], 1
jne 0x100196f0
mov edi, dword [esp + 0x20]
xor edx, edx
xor esi, esi
mov dword [esp + 0x30], edx
xor ebp, ebp
mov dword [esp + 0x34], edx
xor eax, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x1c], eax
nop
mov al, byte [edi + 0xc]
mov byte [esp + 0x12], al
movzx eax, word [edi]
movsx ecx, ax
movzx eax, word [edi + 2]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x3c], ecx
cmp dword [esp + 0x44], eax
jne 0x1001984e
test eax, eax
je 0x100197b5
push dword [esp + 0x18]
mov ecx, ebx
push dword [esp + 0x2c]
push dword [esp + 0x38]
push dword [esp + 0x40]
push esi
push ebp
push dword [esp + 0x58]
push dword [esp + 0x30]
call fcn.10019470
mov ecx, dword [esp + 0x5c]
add esp, 0x20
mov edx, eax
movzx ebp, byte [esp + 0x12]
not ebp
and ebp, 1
mov dword [esp + 0x40], ebp
je 0x10019804
test byte [edi + 0x1a], 1
mov esi, dword [esp + 0x20]
movsx ebp, si
movsx esi, word [edi + 0x10]
mov dword [esp + 0x30], ebp
lea ebp, [edi + 0xe]
mov dword [esp + 0x44], ebp
movsx ebp, word [ebp]
mov dword [esp + 0x34], ecx
jne 0x100197fa
add ebp, ecx
mov ecx, dword [esp + 0x20]
movsx eax, cx
add esi, eax
sar ebp, 1
sar esi, 1
jmp 0x1001980d
inc dword [esp + 0x1c]
mov edi, dword [esp + 0x44]
jmp 0x1001980d
mov ebp, ecx
mov ecx, dword [esp + 0x20]
movsx esi, cx
lea eax, [edx*8]
xor ecx, ecx
sub eax, edx
mov dword [esp + 0x14], ecx
inc edx
mov dword [ebx + eax*2 + 4], ecx
mov byte [ebx + eax*2 + 0xc], 1
mov word [ebx + eax*2], bp
mov word [ebx + eax*2 + 2], si
mov eax, dword [esp + 0x38]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax]
inc ecx
shl eax, 8
add eax, ecx
add dword [esp + 0x38], 2
mov dword [esp + 0x44], eax
jmp 0x10019957
test byte [esp + 0x12], 1
jne 0x100198c9
cmp dword [esp + 0x14], 0
je 0x100198ad
mov eax, dword [esp + 0x3c]
lea ecx, [edx*8]
add eax, dword [esp + 0x28]
sub ecx, edx
sar eax, 1
inc edx
mov dword [esp + 0x14], ecx
mov byte [ebx + ecx*2 + 0xc], 3
mov ebx, dword [esp + 0x24]
mov word [ebx + ecx*2], ax
mov ecx, dword [esp + 0x20]
movsx eax, cx
mov ecx, dword [esp + 0x14]
add eax, dword [esp + 0x18]
sar eax, 1
mov word [ebx + ecx*2 + 2], ax
mov eax, dword [esp + 0x28]
mov word [ebx + ecx*2 + 4], ax
mov eax, dword [esp + 0x18]
mov word [ebx + ecx*2 + 6], ax
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], ecx
movsx ecx, ax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], 1
jmp 0x1001995b
movzx eax, word [edi]
lea ecx, [edx*8]
mov dword [esp + 0x48], eax
sub ecx, edx
mov eax, dword [esp + 0x20]
inc edx
movzx ebx, ax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x24]
test eax, eax
je 0x10019911
mov eax, dword [esp + 0x18]
movzx eax, ax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x28]
movzx ebx, ax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x24]
jmp 0x10019921
mov dword [esp + 0x20], 0
mov dword [esp + 0x3c], 0
test eax, eax
mov dword [esp + 0x14], 0
setne al
add al, 2
mov byte [ebx + ecx*2 + 0xc], al
mov eax, dword [esp + 0x48]
mov word [ebx + ecx*2], ax
mov eax, dword [esp + 0x4c]
mov word [ebx + ecx*2 + 2], ax
mov eax, dword [esp + 0x3c]
mov word [ebx + ecx*2 + 4], ax
mov eax, dword [esp + 0x20]
mov word [ebx + ecx*2 + 6], ax
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
add edi, 0xe
inc eax
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x2c]
jl 0x10019760
mov eax, dword [esp + 0x28]
jmp 0x10019989
xor edx, edx
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x30], edx
xor esi, esi
mov dword [esp + 0x34], edx
xor ebp, ebp
push ecx
push eax
push dword [esp + 0x38]
mov ecx, ebx
push dword [esp + 0x40]
push esi
push ebp
push dword [esp + 0x58]
push dword [esp + 0x30]
call fcn.10019470
add esp, 0x20
mov ebp, eax
mov eax, dword [esp + 0x6c]
mov dword [eax], ebx
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret
cmp ax, 0xffff
jne 0x100199a9
add edi, 0xa
xor ebp, ebp
add edi, esi
xor ebx, ebx
mov al, byte [edi + 2]
movaps xmm0, xmmword [0x10043040]
movzx edx, byte [edi + 1]
movss xmm1, dword [0x10042c48]
mov byte [esp + 0x12], al
mov al, byte [edi + 3]
add edi, 4
mov dword [esp + 0x28], 0
mov dword [esp + 0x38], edx
mov byte [esp + 0x13], al
movups xmmword [esp + 0x50], xmm0
xorps xmm0, xmm0
movss dword [esp + 0x20], xmm0
movss dword [esp + 0x1c], xmm0
test dl, 2
je 0x10019a8b
mov al, byte [edi]
lea ecx, [edi + 1]
mov dword [esp + 0x4c], ecx
test dl, 1
je 0x10019a66
mov dl, byte [edi + 2]
lea esi, [edi + 3]
movzx ecx, al
add edi, 4
movsx ecx, cx
mov eax, 0x100
cwde
imul ecx, eax
mov eax, dword [esp + 0x4c]
movzx eax, byte [eax]
add cx, ax
movsx eax, cx
movzx ecx, dl
mov edx, dword [esp + 0x38]
movsx ecx, cx
movd xmm0, eax
mov eax, 0x100
cwde
imul ecx, eax
movzx eax, byte [esi]
add cx, ax
movsx eax, cx
jmp 0x10019a75
mov edi, ecx
movsx eax, al
mov cl, byte [edi]
inc edi
movd xmm0, eax
movsx eax, cl
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x20], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x1c], xmm0
test dl, 8
je 0x10019ac5
movzx ecx, byte [edi]
mov eax, 0x100
cwde
xorps xmm4, xmm4
movsx ecx, cx
xorps xmm0, xmm0
imul ecx, eax
movzx eax, byte [edi + 1]
add cx, ax
add edi, 2
movsx eax, cx
movd xmm2, eax
cvtdq2ps xmm2, xmm2
mulss xmm2, xmm1
movaps xmm3, xmm2
jmp 0x10019bd7
test dl, 0x40
je 0x10019b20
movzx ecx, byte [edi]
mov edx, 0x100
movsx ecx, cx
xorps xmm4, xmm4
movsx eax, dx
xorps xmm0, xmm0
imul ecx, eax
movzx eax, byte [edi + 1]
add cx, ax
movsx eax, cx
movzx ecx, byte [edi + 2]
movsx ecx, cx
movd xmm3, eax
movsx eax, dx
imul ecx, eax
movzx eax, byte [edi + 3]
cvtdq2ps xmm3, xmm3
add cx, ax
add edi, 4
movsx eax, cx
mulss xmm3, xmm1
movd xmm2, eax
cvtdq2ps xmm2, xmm2
mulss xmm2, xmm1
jmp 0x10019bd7
test dl, dl
jns 0x10019bbf
movzx ecx, byte [edi]
mov edx, 0x100
movsx ecx, cx
movsx eax, dx
imul ecx, eax
movzx eax, byte [edi + 1]
add cx, ax
movsx eax, cx
movzx ecx, byte [edi + 2]
movsx ecx, cx
movd xmm3, eax
movsx eax, dx
imul ecx, eax
movzx eax, byte [edi + 3]
cvtdq2ps xmm3, xmm3
add cx, ax
movsx eax, cx
movzx ecx, byte [edi + 4]
movsx ecx, cx
mulss xmm3, xmm1
movd xmm0, eax
movsx eax, dx
imul ecx, eax
movzx eax, byte [edi + 5]
cvtdq2ps xmm0, xmm0
add cx, ax
movsx eax, cx
movss dword [esp + 0x30], xmm3
movzx ecx, byte [edi + 6]
movsx ecx, cx
movd xmm4, eax
movsx eax, dx
imul ecx, eax
movzx eax, byte [edi + 7]
cvtdq2ps xmm4, xmm4
add cx, ax
add edi, 8
movsx eax, cx
mulss xmm0, xmm1
mulss xmm4, xmm1
movd xmm2, eax
cvtdq2ps xmm2, xmm2
mulss xmm2, xmm1
jmp 0x10019bdd
movss xmm2, dword [esp + 0x5c]
movss xmm4, dword [esp + 0x58]
movss xmm0, dword [esp + 0x54]
movss xmm3, dword [esp + 0x50]
movss dword [esp + 0x30], xmm3
movaps xmm1, xmm0
movss dword [esp + 0x24], xmm0
mulss xmm1, xmm0
lea eax, [esp + 0x28]
movzx edx, byte [esp + 0x12]
movaps xmm0, xmm3
mov ecx, dword [esp + 0x48]
mulss xmm0, xmm3
push eax
movzx eax, byte [esp + 0x17]
shl edx, 8
addss xmm1, xmm0
movss dword [esp + 0x30], xmm4
xorps xmm0, xmm0
movss dword [esp + 0x38], xmm2
add edx, eax
sqrtss xmm0, xmm1
movaps xmm1, xmm2
mulss xmm1, xmm2
movss dword [esp + 0x48], xmm0
movaps xmm0, xmm4
mulss xmm0, xmm4
addss xmm1, xmm0
xorps xmm0, xmm0
sqrtss xmm0, xmm1
movss dword [esp + 0x44], xmm0
call fcn.1001b570
mov esi, eax
add esp, 4
mov dword [esp + 0x3c], esi
test esi, esi
jle 0x10019e04
movss xmm4, dword [esp + 0x34]
xor edx, edx
movss xmm5, dword [esp + 0x30]
movss xmm6, dword [esp + 0x2c]
movss xmm7, dword [esp + 0x24]
mov dword [esp + 0x4c], esi
nop dword [eax]
mov ecx, dword [esp + 0x28]
xorps xmm3, xmm3
xorps xmm2, xmm2
movsx eax, word [ecx + edx + 2]
cvtsi2ss xmm3, eax
movsx eax, word [ecx + edx]
cvtsi2ss xmm2, eax
movaps xmm0, xmm3
mulss xmm3, xmm4
movaps xmm1, xmm2
mulss xmm0, xmm6
mulss xmm1, xmm5
mulss xmm2, xmm7
addss xmm1, xmm0
addss xmm2, xmm3
xorps xmm3, xmm3
addss xmm1, dword [esp + 0x20]
addss xmm2, dword [esp + 0x1c]
mulss xmm1, dword [esp + 0x44]
mulss xmm2, dword [esp + 0x40]
cvttss2si eax, xmm1
mov word [ecx + edx], ax
cvttss2si eax, xmm2
xorps xmm2, xmm2
mov word [ecx + edx + 2], ax
movsx eax, word [ecx + edx + 6]
cvtsi2ss xmm3, eax
movsx eax, word [ecx + edx + 4]
cvtsi2ss xmm2, eax
movaps xmm0, xmm3
mulss xmm3, xmm4
movaps xmm1, xmm2
mulss xmm0, xmm6
mulss xmm1, xmm5
mulss xmm2, xmm7
addss xmm1, xmm0
addss xmm2, xmm3
addss xmm1, dword [esp + 0x20]
addss xmm2, dword [esp + 0x1c]
mulss xmm1, dword [esp + 0x44]
mulss xmm2, dword [esp + 0x40]
cvttss2si eax, xmm1
mov word [ecx + edx + 4], ax
cvttss2si eax, xmm2
mov word [ecx + edx + 6], ax
add edx, 0xe
sub esi, 1
jne 0x10019c80
mov eax, dword [0x10047020]
mov edx, dword [esp + 0x3c]
add edx, ebp
mov dword [esp + 0x44], edx
inc dword [eax + 0x310]
mov ecx, dword [eax + 0xbc]
lea eax, [edx*8]
sub eax, edx
add eax, eax
push eax
call ecx
add esp, 4
mov dword [esp + 0x4c], eax
test eax, eax
je 0x10019e14
lea esi, [ebp*8]
sub esi, ebp
add esi, esi
test ebp, ebp
jle 0x10019da0
push esi
push ebx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x4c]
lea eax, [ecx*8]
sub eax, ecx
add eax, eax
push eax
push dword [esp + 0x2c]
lea eax, [esi + ebp]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
test ebx, ebx
je 0x10019ddf
mov eax, dword [0x10047020]
push ebx
dec dword [eax + 0x310]
mov eax, dword [eax + 0xc0]
call eax
add esp, 4
mov ecx, dword [esp + 0x28]
mov ebx, ebp
mov eax, dword [0x10047020]
test ecx, ecx
je 0x10019df4
dec dword [eax + 0x310]
mov eax, dword [eax + 0xc0]
push ecx
call eax
mov ebp, dword [esp + 0x48]
add esp, 4
test byte [esp + 0x38], 0x20
je 0x100199a9
jmp 0x100199c8
test ebx, ebx
je 0x10019e2f
mov eax, dword [0x10047020]
push ebx
dec dword [eax + 0x310]
mov eax, dword [eax + 0xc0]
call eax
add esp, 4
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x10019e4e
mov eax, dword [0x10047020]
push ecx
dec dword [eax + 0x310]
mov eax, dword [eax + 0xc0]
call eax
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x58
ret