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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x4c
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x18], edi
mov eax, dword [edi + 0xc]
cmp eax, 3
jne 0x100413ce
mov edx, dword [ebp + 8]
movzx eax, byte [edx + 5]
push eax
movzx eax, byte [edx + 3]
push eax
movzx eax, byte [edx + 1]
push eax
call fcn.10040940
xor ebx, ebx
cmp dword [edi + 0x10], ebx
jle 0x100413c5
lea eax, [edi + 0x14]
mov dword [esp + 0x18], eax
mov eax, dword [eax]
mov ecx, dword [edi + 0x44]
lea esi, [eax + ecx*4]
mov eax, dword [edi + 0x78]
mov ecx, dword [edi + 0x74]
mov edx, dword [esi + eax*4]
add edx, dword [esi + ecx*4]
mov eax, dword [edi + 0x70]
mov ecx, dword [ebp + 0xc]
add edx, dword [esi + eax*4]
mov eax, dword [edi + 0x6c]
add edx, dword [esi + eax*4]
mov eax, dword [edi + 0x68]
add edx, dword [esi + eax*4]
mov eax, dword [edi + 0x64]
add edx, dword [esi + eax*4]
mov eax, dword [edi + 0x60]
add edx, dword [esi + eax*4]
mov eax, dword [edi + 0x5c]
add edx, dword [esi + eax*4]
mov eax, dword [edi + 0x58]
add edx, dword [esi + eax*4]
mov eax, dword [edi + 0x54]
add edx, dword [esi + eax*4]
mov eax, dword [edi + 0x50]
add edx, dword [esi + eax*4]
mov eax, dword [edi + 0x4c]
add edx, dword [esi + eax*4]
mov eax, dword [edi + 0x48]
add edx, dword [esi + eax*4]
mov eax, dword [edi + 0x7c]
add edx, dword [esi + eax*4]
mov eax, dword [edi + 0x80]
add edx, dword [esi + eax*4]
mov eax, dword [esi]
add edx, 8
add eax, edx
shr eax, 4
movzx eax, al
mov word [ecx + ebx*2], ax
inc ebx
mov eax, dword [esp + 0x18]
add eax, 4
mov dword [esp + 0x18], eax
cmp ebx, dword [edi + 0x10]
jl 0x10041337
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp eax, 4
jne 0x1004164b
mov esi, dword [ebp + 8]
movzx eax, word [esi + 4]
push eax
movzx eax, word [esi + 2]
push eax
movzx eax, word [esi]
push eax
call fcn.10040940
movzx ecx, word [esi + 6]
movsd xmm3, qword [0x100f10a8]
mov eax, ecx
shr eax, 4
imul ebx, eax, 0x1331
mov dword [esp + 0x4c], ebx
cmp eax, 0xf
jae 0x1004141e
and ecx, 0xf
movd xmm2, ecx
cvtdq2pd xmm2, xmm2
mulsd xmm2, xmm3
jmp 0x10041431
and ecx, 0xf
movd xmm2, ecx
cvtdq2pd xmm2, xmm2
divsd xmm2, qword [0x100f1190]
cmp dword [edi + 0x10], 0
mov dword [esp + 0x48], 0
jle 0x100413c5
movsd xmm4, qword [0x100f10f0]
lea edx, [edi + 0x14]
mov dword [esp + 0x14], edx
mov edi, edi
mov ecx, dword [edx]
mov eax, dword [edi + 0x44]
add eax, ebx
mov esi, dword [esp + 0x18]
mov ebx, dword [edi + 0x50]
shl ebx, 2
mov dword [esp + 0x50], ebx
lea edx, [ecx + eax*4]
mov esi, dword [esi + 0x48]
mov eax, dword [edi + 0x80]
shl eax, 2
mov dword [esp + 0x44], eax
mov eax, dword [edi + 0x7c]
shl eax, 2
mov dword [esp + 0x40], eax
mov eax, dword [edi + 0x78]
shl eax, 2
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0x74]
shl eax, 2
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0x70]
shl eax, 2
mov dword [esp + 0x34], eax
mov eax, dword [edi + 0x6c]
shl eax, 2
mov dword [esp + 0x30], eax
mov eax, dword [edi + 0x68]
shl eax, 2
mov ecx, dword [edi + 0x58]
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0x64]
shl eax, 2
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x60]
shl eax, 2
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0x5c]
mov dword [esp + 0x10], edx
mov edx, dword [edx + esi*4]
shl eax, 2
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0x54]
mov edi, dword [edi + 0x4c]
shl eax, 2
shl ecx, 2
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x54], eax
add edx, dword [ecx + edi*4]
add edx, dword [ebx + ecx]
add edx, dword [eax + ecx]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x4c]
add edx, dword [ecx + eax]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
add edx, dword [eax + ecx]
mov eax, dword [esp + 0x24]
add edx, dword [eax + ecx]
mov eax, dword [esp + 0x28]
add edx, dword [eax + ecx]
mov eax, dword [esp + 0x2c]
add edx, dword [eax + ecx]
mov eax, dword [esp + 0x30]
add edx, dword [eax + ecx]
mov eax, dword [esp + 0x34]
add edx, dword [eax + ecx]
mov eax, dword [esp + 0x38]
add edx, dword [eax + ecx]
mov eax, dword [esp + 0x3c]
add edx, dword [eax + ecx]
mov eax, dword [esp + 0x40]
add edx, dword [eax + ecx]
mov eax, dword [esp + 0x44]
add edx, dword [eax + ecx]
add edx, dword [ecx]
add ebx, 0x1331
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x44]
add eax, ebx
movd xmm1, edx
mov ebx, dword [esp + 0x14]
shr edx, 0x1f
cvtdq2pd xmm1, xmm1
mov ecx, dword [ebx]
mov ebx, dword [esp + 0x50]
lea ecx, [ecx + eax*4]
addsd xmm1, qword [edx*8 + 0x100f1e60]
mov eax, dword [ecx + esi*4]
add eax, dword [ecx + edi*4]
add eax, dword [ebx + ecx]
mov edx, dword [esp + 0x54]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x4c]
add eax, dword [edx + ecx]
mov edx, dword [esp + 0x1c]
add eax, dword [edx + ecx]
mov edx, dword [esp + 0x20]
add eax, dword [edx + ecx]
mov edx, dword [esp + 0x24]
add eax, dword [edx + ecx]
mov edx, dword [esp + 0x28]
add eax, dword [edx + ecx]
mov edx, dword [esp + 0x2c]
add eax, dword [edx + ecx]
mov edx, dword [esp + 0x30]
add eax, dword [edx + ecx]
mov edx, dword [esp + 0x34]
add eax, dword [edx + ecx]
mov edx, dword [esp + 0x38]
add eax, dword [edx + ecx]
mov edx, dword [esp + 0x3c]
add eax, dword [edx + ecx]
mov edx, dword [esp + 0x40]
add eax, dword [edx + ecx]
mov edx, dword [esp + 0x44]
add eax, dword [edx + ecx]
add eax, dword [ecx]
mov ecx, dword [esp + 0x48]
mov edx, dword [ebp + 0xc]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100f1e60]
subsd xmm0, xmm1
mulsd xmm0, xmm2
addsd xmm0, xmm1
mulsd xmm0, xmm3
addsd xmm0, xmm4
cvttsd2si eax, xmm0
movzx eax, al
mov word [edx + ecx*2], ax
inc ecx
mov edx, dword [esp + 0x14]
add edx, 4
mov dword [esp + 0x48], ecx
mov dword [esp + 0x14], edx
cmp ecx, dword [edi + 0x10]
jl 0x10041450
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
sub esp, 0xc
push 0
push 0
push str.unsupported_input_dimension
call fcn.10047a60
int3