Function at 0x1001a510
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x54
push ebx
mov eax, ecx
xor ebx, ebx
push esi
push edi
mov dword [esp + 0x44], eax
xor edi, edi
mov esi, dword [eax + 4]
call fcn.1001a290
mov edx, eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x3c], edx
mov dword [eax], ebx
test edx, edx
js 0x1001ae4c
movzx ecx, byte [edx + esi]
mov eax, 0x100
movsx ecx, cx
cwde
imul ecx, eax
movzx eax, byte [edx + esi + 1]
add cx, ax
movzx ecx, cx
test cx, cx
jle 0x1001a957
lea eax, [esi + 0xa]
mov byte [esp + 0xf], bl
add eax, edx
movsx esi, cx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x14], ebx
lea edx, [edx + esi*2]
mov dword [esp + 0x40], ebx
mov edi, dword [eax + 4]
mov eax, 0x100
movzx ecx, byte [edx + edi + 0xa]
imul ecx, eax
movzx eax, byte [edx + edi + 0xb]
mov edx, dword [esp + 0x2c]
add cx, ax
mov eax, 0x100
movzx ebx, cx
movzx ecx, byte [edx + esi*2 - 2]
add ebx, 0xc
add ebx, dword [esp + 0x3c]
imul ecx, eax
movzx eax, byte [edx + esi*2 - 1]
lea ebx, [ebx + esi*2]
add ebx, edi
add cx, ax
movzx eax, cx
inc eax
mov dword [esp + 0x20], eax
lea esi, [eax + esi*2]
mov eax, dword [0x101d9090]
test eax, eax
je 0x1001a5de
inc dword [eax + 0xa8]
lea eax, [esi*8]
sub eax, esi
add eax, eax
push eax
call fcn.1007ada5
mov edi, eax
add esp, 4
mov dword [esp + 0x18], edi
test edi, edi
je 0x1001ae4c
mov edx, dword [esp + 0x20]
xor cl, cl
sub esi, edx
mov dword [esp + 0x44], 0
mov dword [esp + 0x30], esi
test edx, edx
jle 0x1001a651
lea eax, [esi*8]
sub eax, esi
mov esi, edx
mov dl, byte [esp + 0xf]
add eax, 6
lea eax, [edi + eax*2]
nop dword [eax]
test cl, cl
jne 0x1001a641
mov dl, byte [ebx]
inc ebx
test dl, 8
je 0x1001a643
mov cl, byte [ebx]
inc ebx
jmp 0x1001a643
dec cl
mov byte [eax], dl
add eax, 0xe
sub esi, 1
jne 0x1001a630
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
xor edx, edx
test ecx, ecx
jle 0x1001a6be
lea eax, [esi*8]
sub eax, esi
lea esi, [edi + eax*2]
mov edi, ecx
nop dword [eax]
mov cl, byte [esi + 0xc]
test cl, 2
je 0x1001a688
movzx eax, byte [ebx]
inc ebx
cwde
test cl, 0x10
jne 0x1001a684
neg eax
add edx, eax
jmp 0x1001a6ab
test cl, 0x10
jne 0x1001a6ab
movzx ecx, byte [ebx]
mov eax, 0x100
cwde
movsx ecx, cx
imul ecx, eax
movzx eax, byte [ebx + 1]
add cx, ax
movsx eax, cx
add edx, eax
add ebx, 2
mov word [esi], dx
add esi, 0xe
sub edi, 1
jne 0x1001a670
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
xor edx, edx
test ecx, ecx
jle 0x1001a72a
mov ecx, dword [esp + 0x30]
lea esi, [ecx*8]
sub esi, ecx
inc esi
lea esi, [edi + esi*2]
mov edi, dword [esp + 0x20]
nop dword [eax]
mov cl, byte [esi + 0xa]
test cl, 4
je 0x1001a6f8
movzx eax, byte [ebx]
inc ebx
cwde
test cl, 0x20
jne 0x1001a6f4
neg eax
add edx, eax
jmp 0x1001a71b
test cl, 0x20
jne 0x1001a71b
movzx ecx, byte [ebx]
mov eax, 0x100
cwde
movsx ecx, cx
imul ecx, eax
movzx eax, byte [ebx + 1]
add cx, ax
movsx eax, cx
add edx, eax
add ebx, 2
mov word [esi], dx
add esi, 0xe
sub edi, 1
jne 0x1001a6e0
mov edi, dword [esp + 0x18]
xor eax, eax
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x38], edx
xor ebx, ebx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x20], eax
jle 0x1001a926
mov esi, dword [esp + 0x30]
lea eax, [esi*8]
sub eax, esi
lea esi, [edi + eax*2]
mov al, byte [esi + 0xc]
mov byte [esp + 0xf], al
movsx eax, word [esi]
mov dword [esp + 0x30], eax
movsx eax, word [esi + 2]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
jne 0x1001a854
cmp dword [esp + 0x1c], 0
je 0x1001a7bd
push dword [esp + 0x24]
push dword [esp + 0x2c]
push dword [esp + 0x40]
push dword [esp + 0x48]
push ebx
push ecx
push dword [esp + 0x58]
mov ecx, edi
push dword [esp + 0x30]
call fcn.1001a440
mov edx, eax
add esp, 0x20
mov eax, dword [esp + 0x30]
movzx ecx, byte [esp + 0xf]
not ecx
and ecx, 1
mov dword [esp + 0x40], ecx
je 0x1001a7fc
test byte [esi + 0x1a], 1
mov ecx, dword [esp + 0x10]
movsx ebx, word [esi + 0x10]
mov dword [esp + 0x38], ecx
movsx ecx, word [esi + 0xe]
mov dword [esp + 0x3c], eax
jne 0x1001a7f3
add ebx, dword [esp + 0x10]
add ecx, eax
sar ecx, 1
sar ebx, 1
jmp 0x1001a802
inc dword [esp + 0x1c]
add esi, 0xe
jmp 0x1001a802
mov ebx, dword [esp + 0x10]
mov ecx, eax
lea eax, [edx*8]
mov dword [esp + 0x34], ecx
sub eax, edx
inc edx
mov word [edi + eax*2], cx
xor ecx, ecx
mov dword [edi + eax*2 + 4], ecx
mov byte [edi + eax*2 + 0xc], 1
mov word [edi + eax*2 + 2], bx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x14], ecx
movzx ecx, byte [eax]
mov eax, 0x100
imul ecx, eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax + 1]
add cx, ax
movzx eax, cx
inc eax
add dword [esp + 0x2c], 2
mov dword [esp + 0x44], eax
jmp 0x1001a908
test byte [esp + 0xf], 1
jne 0x1001a8ba
cmp dword [esp + 0x14], 0
je 0x1001a8a4
add eax, dword [esp + 0x28]
lea ecx, [edx*8]
sub ecx, edx
sar eax, 1
mov byte [edi + ecx*2 + 0xc], 3
mov edi, dword [esp + 0x18]
mov word [edi + ecx*2], ax
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x24]
sar eax, 1
inc edx
mov word [edi + ecx*2 + 2], ax
mov eax, dword [esp + 0x28]
mov word [edi + ecx*2 + 4], ax
mov eax, dword [esp + 0x24]
mov word [edi + ecx*2 + 6], ax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], 1
jmp 0x1001a908
mov ecx, dword [esp + 0x30]
lea eax, [edx*8]
sub eax, edx
cmp dword [esp + 0x14], 0
mov word [edi + eax*2], cx
mov ecx, dword [esp + 0x10]
mov word [edi + eax*2 + 2], cx
je 0x1001a8f4
mov ecx, dword [esp + 0x28]
mov word [edi + eax*2 + 4], cx
mov ecx, dword [esp + 0x24]
mov byte [edi + eax*2 + 0xc], 3
mov word [edi + eax*2 + 6], cx
jmp 0x1001a8ff
xor ecx, ecx
mov byte [edi + eax*2 + 0xc], 2
mov dword [edi + eax*2 + 4], ecx
inc edx
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x1c]
add esi, 0xe
mov ecx, dword [esp + 0x34]
inc eax
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x20]
jl 0x1001a764
mov eax, dword [esp + 0x24]
push eax
push dword [esp + 0x2c]
push dword [esp + 0x40]
push dword [esp + 0x48]
push ebx
push ecx
push dword [esp + 0x58]
mov ecx, edi
push dword [esp + 0x30]
call fcn.1001a440
add esp, 0x20
mov ebx, eax
mov eax, dword [ebp + 8]
mov dword [eax], edi
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
jns 0x1001a949
add esi, 0xa
xor ebx, ebx
add esi, edx
mov dword [esp + 0x14], ebx
xor edi, edi
mov dword [esp + 0x18], edi
movzx ecx, byte [esi]
mov eax, 0x100
movaps xmm0, xmmword [0x100ac4a0]
xorps xmm1, xmm1
movss xmm4, dword [0x100abfdc]
imul ecx, eax
movzx eax, byte [esi + 1]
mov dword [esp + 0x2c], 0
movups xmmword [esp + 0x48], xmm0
add cx, ax
movss dword [esp + 0x20], xmm1
movzx edx, cx
mov eax, 0x100
movzx ecx, byte [esi + 2]
imul ecx, eax
movzx eax, byte [esi + 3]
add esi, 4
movss dword [esp + 0x1c], xmm1
mov dword [esp + 0x10], edx
add cx, ax
movzx eax, cx
mov dword [esp + 0x38], eax
test dl, 2
je 0x1001aa35
test dl, 1
je 0x1001aa11
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
movzx ecx, byte [esi + 2]
movsx ecx, cx
movd xmm0, eax
mov eax, 0x100
cwde
imul ecx, eax
movzx eax, byte [esi + 3]
add cx, ax
add esi, 4
movsx eax, cx
jmp 0x1001aa1f
movsx eax, byte [esi]
movd xmm0, eax
movsx eax, byte [esi + 1]
add esi, 2
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x20], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x1c], xmm0
test dl, 8
je 0x1001aa78
movzx ecx, byte [esi]
mov eax, 0x100
cwde
movaps xmm3, xmm1
movsx ecx, cx
imul ecx, eax
movzx eax, byte [esi + 1]
movss dword [esp + 0x30], xmm1
add cx, ax
add esi, 2
movsx eax, cx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm4
movss dword [esp + 0x34], xmm0
movaps xmm2, xmm0
jmp 0x1001abab
test dl, 0x40
je 0x1001aadc
movzx ecx, byte [esi]
mov edx, 0x100
movsx ecx, cx
movaps xmm3, xmm1
movsx eax, dx
imul ecx, eax
movzx eax, byte [esi + 1]
movss dword [esp + 0x30], xmm1
add cx, ax
movsx eax, cx
movzx ecx, byte [esi + 2]
movsx ecx, cx
movd xmm2, eax
movsx eax, dx
imul ecx, eax
movzx eax, byte [esi + 3]
cvtdq2ps xmm2, xmm2
add cx, ax
add esi, 4
movsx eax, cx
mulss xmm2, xmm4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm4
movss dword [esp + 0x34], xmm0
jmp 0x1001abab
test dl, dl
jns 0x1001ab87
movzx ecx, byte [esi]
mov edx, 0x100
movsx ecx, cx
movsx eax, dx
imul ecx, eax
movzx eax, byte [esi + 1]
add cx, ax
movsx eax, cx
movzx ecx, byte [esi + 2]
movsx ecx, cx
movd xmm2, eax
movsx eax, dx
imul ecx, eax
movzx eax, byte [esi + 3]
cvtdq2ps xmm2, xmm2
add cx, ax
movsx eax, cx
movzx ecx, byte [esi + 4]
movsx ecx, cx
mulss xmm2, xmm4
movd xmm3, eax
movsx eax, dx
imul ecx, eax
movzx eax, byte [esi + 5]
cvtdq2ps xmm3, xmm3
add cx, ax
movsx eax, cx
movss dword [esp + 0x28], xmm2
movzx ecx, byte [esi + 6]
movsx ecx, cx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movsx eax, dx
imul ecx, eax
movzx eax, byte [esi + 7]
mulss xmm0, xmm4
mulss xmm3, xmm4
add cx, ax
add esi, 8
movsx eax, cx
movss dword [esp + 0x30], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm4
movss dword [esp + 0x34], xmm0
jmp 0x1001abb1
movss xmm0, dword [esp + 0x54]
movss xmm3, dword [esp + 0x4c]
movss xmm2, dword [esp + 0x48]
movss dword [esp + 0x34], xmm0
movss xmm0, dword [esp + 0x50]
movss dword [esp + 0x30], xmm0
movss dword [esp + 0x28], xmm2
movaps xmm0, xmm2
movss dword [esp + 0x24], xmm3
movaps xmm1, xmm3
mulss xmm0, xmm2
mulss xmm1, xmm3
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
call fcn.10090270
movss xmm2, dword [esp + 0x30]
movss xmm1, dword [esp + 0x34]
cvtsd2ss xmm0, xmm0
mulss xmm1, xmm1
movss dword [esp + 0x40], xmm0
movaps xmm0, xmm2
mulss xmm0, xmm2
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
call fcn.10090270
mov ecx, dword [esp + 0x44]
lea eax, [esp + 0x2c]
cvtsd2ss xmm0, xmm0
push eax
mov eax, dword [esp + 0x3c]
movzx edx, ax
movss dword [esp + 0x40], xmm0
call fcn.1001c210
add esp, 4
mov dword [esp + 0x38], eax
test eax, eax
jle 0x1001ae00
movss xmm4, dword [esp + 0x34]
xor edi, edi
movss xmm5, dword [esp + 0x28]
mov ebx, eax
movss xmm6, dword [esp + 0x30]
movss xmm7, dword [esp + 0x24]
nop dword [eax + eax]
mov edx, dword [esp + 0x2c]
movzx eax, word [edi + edx + 2]
movzx ecx, word [edi + edx]
cwde
movd xmm3, eax
cvtdq2ps xmm3, xmm3
movsx eax, cx
movzx ecx, word [edi + edx + 4]
movd xmm2, eax
cvtdq2ps xmm2, xmm2
movaps xmm1, xmm3
mulss xmm3, xmm4
mulss xmm1, xmm6
movaps xmm0, xmm2
mulss xmm0, xmm5
mulss xmm2, xmm7
addss xmm1, xmm0
addss xmm3, xmm2
addss xmm1, dword [esp + 0x20]
addss xmm3, dword [esp + 0x1c]
mulss xmm1, dword [esp + 0x40]
mulss xmm3, dword [esp + 0x3c]
cvttss2si eax, xmm1
mov word [edi + edx], ax
cvttss2si eax, xmm3
mov word [edi + edx + 2], ax
movzx eax, word [edi + edx + 6]
cwde
movd xmm3, eax
movsx eax, cx
cvtdq2ps xmm3, xmm3
movd xmm2, eax
cvtdq2ps xmm2, xmm2
movaps xmm1, xmm3
mulss xmm3, xmm4
movaps xmm0, xmm2
mulss xmm1, xmm6
mulss xmm0, xmm5
mulss xmm2, xmm7
addss xmm1, xmm0
addss xmm3, xmm2
addss xmm1, dword [esp + 0x20]
addss xmm3, dword [esp + 0x1c]
mulss xmm1, dword [esp + 0x40]
mulss xmm3, dword [esp + 0x3c]
cvttss2si eax, xmm1
mov word [edi + edx + 4], ax
cvttss2si eax, xmm3
mov word [edi + edx + 6], ax
add edi, 0xe
sub ebx, 1
jne 0x1001ac50
mov eax, dword [0x101d9090]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
test eax, eax
je 0x1001ad3d
inc dword [eax + 0xa8]
mov ecx, dword [esp + 0x38]
add ecx, ebx
mov dword [esp + 0x3c], ecx
lea eax, [ecx*8]
sub eax, ecx
add eax, eax
push eax
call fcn.1007ada5
mov ecx, eax
add esp, 4
mov dword [esp + 0x40], ecx
test ecx, ecx
je 0x1001ae10
test ebx, ebx
jle 0x1001ad8b
test edi, edi
je 0x1001ad8b
lea eax, [ebx*8]
sub eax, ebx
add eax, eax
push eax
push edi
push ecx
call fcn.1006f680
mov ecx, dword [esp + 0x4c]
add esp, 0xc
mov edx, dword [esp + 0x38]
lea eax, [edx*8]
sub eax, edx
add eax, eax
push eax
push dword [esp + 0x30]
lea eax, [ebx*8]
sub eax, ebx
lea eax, [ecx + eax*2]
push eax
call fcn.1006f680
add esp, 0xc
test edi, edi
je 0x1001add0
mov eax, dword [0x101d9090]
test eax, eax
je 0x1001adc7
dec dword [eax + 0xa8]
push edi
call fcn.1007604c
add esp, 4
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x40]
mov dword [esp + 0x18], edi
test ecx, ecx
je 0x1001adef
mov eax, dword [0x101d9090]
test eax, eax
je 0x1001adef
dec dword [eax + 0xa8]
push ecx
call fcn.1007604c
mov ebx, dword [esp + 0x40]
add esp, 4
mov dword [esp + 0x14], ebx
test byte [esp + 0x10], 0x20
je 0x1001a949
jmp 0x1001a96a
test edi, edi
je 0x1001ae2c
mov eax, dword [0x101d9090]
test eax, eax
je 0x1001ae23
dec dword [eax + 0xa8]
push edi
call fcn.1007604c
add esp, 4
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x1001ae4c
mov eax, dword [0x101d9090]
test eax, eax
je 0x1001ae43
dec dword [eax + 0xa8]
push ecx
call fcn.1007604c
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret