Function at 0x414df6
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x120
mov esi, edx
mov dword [esp + 0xc], edx
mov ebx, dword [edx]
mov eax, ebx
mul ebx
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], eax
mov edx, dword [esi + 4]
mov dword [esp + 4], edx
mov edi, ebx
mov eax, ebx
mov dword [esp + 0x18], ebx
shr edi, 0x1f
mov ebx, edi
imul ebx, edx
add eax, eax
mov dword [esp], eax
mul edx
mov esi, edx
add esi, ebx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 4]
mul eax
mov dword [esp + 8], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x4c], esi
mov ebx, dword [esp + 0xc]
mov esi, dword [ebx + 8]
mov eax, dword [esp]
mul esi
imul edi, esi
add edx, edi
add eax, dword [esp + 8]
adc edx, dword [esp + 0x10]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x20], eax
mul dword [esp + 0x18]
mov dword [esp], edx
mov ebx, eax
mov eax, esi
mov edi, esi
mov dword [esp + 0x2c], esi
mul dword [esp + 4]
mov esi, edx
add eax, ebx
adc esi, dword [esp]
shld esi, eax, 1
add eax, eax
mov dword [esp + 0x58], eax
mov eax, edi
mul edi
mov dword [esp + 0x10], eax
mov dword [esp], edx
mov dword [esp + 0x5c], esi
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx + 0x10]
mov dword [esp + 8], eax
mov edi, dword [esp + 0x18]
mul edi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 4]
mul esi
add eax, dword [esp + 0x14]
adc edx, dword [esp + 0x1c]
shld edx, eax, 1
add eax, eax
add eax, dword [esp + 0x10]
adc edx, dword [esp]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
mov eax, dword [ebx + 0x14]
mov dword [esp], eax
mul edi
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 8]
mul esi
mov dword [esp + 0x14], edx
mov esi, eax
mov edi, dword [esp + 0x20]
mov eax, edi
mul dword [esp + 0x2c]
mov ebx, edx
add eax, esi
adc ebx, dword [esp + 0x14]
add eax, dword [esp + 0x1c]
adc ebx, dword [esp + 0x10]
shld ebx, eax, 1
add eax, eax
mov dword [esp + 0x68], eax
mov eax, edi
mul edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x6c], ebx
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x10], eax
mul dword [esp + 0x18]
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], eax
mov eax, dword [esp]
mov edi, dword [esp + 4]
mul edi
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 8]
mov esi, dword [esp + 0x2c]
mul esi
add eax, dword [esp + 0x30]
adc edx, dword [esp + 0x34]
add eax, dword [esp + 0x24]
adc edx, dword [esp + 0x28]
shld edx, eax, 1
add eax, eax
add eax, dword [esp + 0x14]
adc edx, dword [esp + 0x1c]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x1c], eax
mul dword [esp + 0x18]
mov dword [esp + 0x14], edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
mul edi
mov dword [esp + 0x24], edx
mov dword [esp + 0x34], eax
mov eax, dword [esp]
mul esi
mov dword [esp + 0x30], edx
mov esi, eax
mov edi, dword [esp + 8]
mov eax, edi
mul dword [esp + 0x20]
mov ebx, edx
add eax, esi
adc ebx, dword [esp + 0x30]
add eax, dword [esp + 0x34]
adc ebx, dword [esp + 0x24]
add eax, dword [esp + 0x28]
adc ebx, dword [esp + 0x14]
shld ebx, eax, 1
add eax, eax
mov dword [esp + 0x78], eax
mov eax, edi
mul edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x7c], ebx
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x20]
mov dword [esp + 0xc], eax
mul dword [esp + 0x18]
mov dword [esp + 0x18], edx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
mul dword [esp + 4]
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x2c]
mul edi
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp]
mov esi, dword [esp + 0x20]
mul esi
mov ebx, eax
add ebx, dword [esp + 0x3c]
adc edx, dword [esp + 0x38]
add ebx, dword [esp + 0x30]
adc edx, dword [esp + 0x34]
add ebx, dword [esp + 0x24]
adc edx, dword [esp + 0x18]
shld edx, ebx, 1
add ebx, ebx
add ebx, dword [esp + 0x28]
adc edx, dword [esp + 0x14]
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0xc]
mul dword [esp + 4]
mov dword [esp + 4], edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
mul edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
mul esi
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], eax
mov edi, dword [esp]
mov eax, edi
mul dword [esp + 8]
mov esi, eax
add esi, dword [esp + 0x30]
adc edx, dword [esp + 0x34]
add esi, dword [esp + 0x24]
adc edx, dword [esp + 0x28]
add esi, dword [esp + 0x14]
adc edx, dword [esp + 4]
mov dword [esp + 4], edx
mov eax, edi
mul edi
mov dword [esp + 0x14], edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xc]
mul dword [esp + 0x2c]
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x80], ebx
mov eax, dword [esp + 0x1c]
mul dword [esp + 0x20]
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], edx
shld dword [esp + 4], esi, 1
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 8]
mul ecx
mov edi, eax
mov ebx, edx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x84], eax
add esi, esi
add edi, dword [esp + 0x38]
adc ebx, dword [esp + 0x30]
add edi, dword [esp + 0x34]
adc ebx, dword [esp + 0x2c]
shld ebx, edi, 1
add edi, edi
add edi, dword [esp + 0x28]
adc ebx, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mul dword [esp + 0x20]
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x88], esi
mov eax, dword [esp + 4]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x1c]
mul ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 4], edx
mov dword [esp + 0x90], edi
mov ecx, dword [esp + 0x10]
mov eax, ecx
mul dword [esp]
mov edi, edx
mov esi, eax
add esi, dword [esp + 0x2c]
adc edi, dword [esp + 4]
mov dword [esp + 0x94], ebx
add esi, dword [esp + 0x18]
adc edi, dword [esp + 0x20]
mov eax, ecx
mul eax
mov dword [esp + 4], eax
mov dword [esp + 0x20], edx
shld edi, esi, 1
mov eax, dword [esp + 0xc]
mul dword [esp + 8]
mov dword [esp + 0x18], eax
mov dword [esp + 8], edx
add esi, esi
mov dword [esp + 0x98], esi
mov ecx, dword [esp + 0x1c]
mov eax, ecx
mul dword [esp]
mov ebx, eax
mov esi, edx
mov dword [esp + 0x9c], edi
add ebx, dword [esp + 0x18]
adc esi, dword [esp + 8]
shld esi, ebx, 1
add ebx, ebx
add ebx, dword [esp + 4]
adc esi, dword [esp + 0x20]
mov eax, dword [esp + 0xc]
mul dword [esp]
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xa0], ebx
mov eax, ecx
mul dword [esp + 0x10]
mov edi, edx
mov ebx, eax
add ebx, dword [esp + 8]
adc edi, dword [esp]
mov dword [esp + 0xa4], esi
shld edi, ebx, 1
add ebx, ebx
mov eax, ecx
mul ecx
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], edi
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
mul ebx
mov esi, edx
mov edi, eax
shld esi, eax, 1
add edi, eax
add edi, dword [esp + 8]
adc esi, dword [esp]
mov eax, ecx
mul ebx
mov ecx, ebx
mov ebx, eax
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], esi
shld edx, eax, 1
add ebx, eax
mov dword [esp + 0xbc], edx
mov eax, ecx
mul eax
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xc4], edx
mov dword [esp + 0xc0], eax
xor eax, eax
mov ecx, 0xffffffbc
xor edx, edx
add eax, dword [esp + ecx*2 + 0xc8]
adc edx, dword [esp + ecx*2 + 0xcc]
mov esi, eax
and esi, 0x3fffffff
mov dword [esp + ecx + 0x118], esi
shrd eax, edx, 0x1e
shr edx, 0x1e
add ecx, 4
jne 0x41528f
mov dword [esp + 0x118], eax
mov eax, 0xffffffb8
xorps xmm0, xmm0
movsd xmm1, qword [esp + eax + 0x11c]
unpcklps xmm1, xmm0
movups xmmword [esp + eax*2 + 0xd0], xmm1
add eax, 8
jne 0x4152c7
mov edi, dword [esp + 0xcc]
mov esi, dword [esp + 0xc8]
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xb8]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp], ecx
mov ebx, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x14], ecx
mov edx, 0x12
mov ecx, edi
mov dword [esp + 0x28], ebx
mov ebx, edi
shld edi, esi, 0x1e
sar ecx, 2
add edi, eax
mov dword [esp + 4], edi
adc ecx, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
mov eax, esi
and eax, 3
shl eax, 0x1c
mov dword [esp + 0xc], ebx
mov ecx, ebx
shld ecx, esi, 0x1c
sar ebx, 4
sub eax, ecx
mov edi, esi
mov esi, 0
sbb esi, ebx
add eax, dword [esp + 8]
adc esi, dword [esp + 0x1c]
mov ecx, dword [esp + 4]
mov dword [esp + edx*8 + 0x30], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + edx*8 + 0x34], ecx
mov dword [esp + edx*8 + 0x28], eax
mov dword [esp + 0x18], esi
mov dword [esp + edx*8 + 0x2c], esi
mov dword [esp + 0x10], edi
mov ecx, edi
and ecx, 0xf
shl ecx, 0x1a
mov esi, dword [esp + edx*8 + 0x20]
sub esi, ecx
mov dword [esp + 8], esi
mov esi, dword [esp + edx*8 + 0x24]
sbb esi, 0
mov ebx, dword [esp + 0xc]
mov ecx, ebx
shld ecx, edi, 0x16
sar ebx, 0xa
sub dword [esp], ecx
mov ecx, dword [esp + 0x2c]
sbb ecx, ebx
mov edi, dword [esp + 8]
mov dword [esp + edx*8 + 0x20], edi
mov dword [esp + 0x1c], esi
mov dword [esp + edx*8 + 0x24], esi
mov esi, dword [esp]
mov dword [esp + edx*8 + 0x10], esi
mov dword [esp + edx*8 + 0x14], ecx
mov ecx, dword [esp + 0x10]
shl ecx, 0x14
and ecx, 0x3ff00000
mov esi, dword [esp + edx*8 + 8]
sub esi, ecx
mov dword [esp], esi
mov ecx, dword [esp + edx*8 + 0xc]
sbb ecx, 0
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
shld ebx, edi, 0x10
mov edi, dword [esp + 0xc]
sar edi, 0x10
add ebx, dword [esp + 0x28]
adc edi, dword [esp + 0x14]
mov esi, dword [esp + edx*8 - 0xc]
mov dword [esp + 0xc], esi
mov esi, dword [esp]
mov dword [esp + edx*8 + 8], esi
mov dword [esp + 0x2c], ecx
mov dword [esp + edx*8 + 0xc], ecx
mov dword [esp + edx*8 - 8], ebx
mov dword [esp + edx*8 - 4], edi
movzx ebx, word [esp + 0x10]
shl ebx, 0xe
add ebx, dword [esp + edx*8 - 0x10]
mov ecx, dword [esp + 0xc]
adc ecx, 0
mov dword [esp + edx*8 - 0x10], ebx
mov dword [esp + edx*8 - 0xc], ecx
dec edx
cmp edx, 9
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 4]
mov edi, ecx
ja 0x415344
xor edx, edx
mov ecx, 0xffffffdc
xor edi, edi
mov ebx, dword [esp + 0x24]
mov esi, edx
add esi, dword [esp + ecx*2 + 0x88]
mov eax, edi
adc eax, dword [esp + ecx*2 + 0x8c]
mov edi, esi
and edi, 0x3fffffff
mov edx, eax
shld edx, esi, 2
mov dword [ebx + ecx + 0x24], edi
mov edi, eax
sar edi, 0x1e
add ecx, 4
jne 0x415488
shld eax, esi, 0x10
movzx edi, word [ebx + 0x20]
mov ecx, eax
shl ecx, 6
mov esi, dword [ebx + 0xc]
sub esi, ecx
mov edx, dword [ebx + 0x18]
mov ecx, eax
shl ecx, 0xc
and ecx, 0x3ffff000
sub edx, ecx
mov ecx, eax
sar ecx, 0x10
add ecx, edi
mov edi, eax
shr edi, 0x1f
mov ebx, edi
shl ebx, 6
add ebx, esi
mov esi, dword [esp + 0x24]
sub dword [esi], edi
mov esi, dword [esp + 0x24]
mov dword [esi + 0xc], ebx
mov ebx, dword [esp + 0x24]
mov esi, edi
shl esi, 0xc
add esi, edx
mov edx, eax
sar edx, 0x12
mov dword [ebx + 0x18], esi
mov esi, edi
shl esi, 0xe
add esi, edx
movzx edx, ax
shl edx, 0xe
add edx, dword [ebx + 0x1c]
sub edx, esi
mov dword [ebx + 0x1c], edx
shl edi, 0x10
add edi, ecx
mov dword [ebx + 0x20], edi
mov ecx, 0xffffffdc
add eax, dword [ebx + ecx + 0x24]
mov edx, eax
and edx, 0x3fffffff
mov dword [ebx + ecx + 0x24], edx
sar eax, 0x1e
add ecx, 4
jne 0x41552d
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret