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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x148
mov esi, edx
mov ebx, dword [esp + 0x15c]
mov ebp, dword [edx]
mov dword [esp + 0x20], ebp
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x18], eax
mul ebp
mov dword [esp + 0x144], eax
mov edi, edx
mov eax, dword [ebx + 0x24]
mov dword [esp + 0x1c], eax
mul ebp
mov ebx, edx
mov ebp, eax
add ebp, edi
adc ebx, 0
mov edx, dword [esi + 4]
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x18]
mul edx
mov edi, edx
add eax, ebp
mov dword [esp + 0x140], eax
adc edi, ebx
setb bl
mov eax, dword [esp + 0x1c]
mul dword [esp + 0x14]
add eax, edi
mov dword [esp + 0x138], eax
movzx eax, bl
adc edx, eax
mov dword [esp + 0x13c], edx
movdqu xmm1, xmmword [esi + 8]
pshufd xmm0, xmm1, 0x55
mov eax, dword [esi + 8]
mov dword [esp + 0x64], eax
mov edx, 0x13
mul edx
mov ebx, 0x13
mov dword [esp + 0xc], eax
movd edi, xmm0
mov dword [esp + 0x40], edi
lea eax, [edi + edi*8]
lea eax, [edi + eax*2]
add eax, edx
mov dword [esp], eax
movdqu xmm0, xmmword [esi + 0x18]
mov ebp, dword [esi + 0x18]
mov dword [esp + 0xb4], ebp
pshufd xmm2, xmm1, 0xff
pshufd xmm1, xmm1, 0xee
movd eax, xmm1
mov dword [esp + 0x34], eax
mul ebx
mov dword [esp + 0x4c], eax
mov esi, edx
movd edx, xmm2
mov dword [esp + 0x68], edx
lea eax, [edx + edx*8]
lea edi, [edx + eax*2]
mov eax, ebp
mul ebx
mov dword [esp + 0x2c], eax
add edi, esi
mov dword [esp + 0x48], edi
pshufd xmm1, xmm0, 0x55
movd esi, xmm1
mov dword [esp + 0x3c], esi
lea eax, [esi + esi*8]
lea eax, [esi + eax*2]
add eax, edx
mov dword [esp + 0x24], eax
pshufd xmm1, xmm0, 0xff
pshufd xmm0, xmm0, 0xee
movd eax, xmm0
mov dword [esp + 0xac], eax
mul ebx
mov dword [esp + 0x28], eax
movd esi, xmm1
mov dword [esp + 0x7c], esi
lea eax, [esi + esi*8]
lea eax, [esi + eax*2]
add eax, edx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x15c]
movdqu xmm0, xmmword [eax]
pshufd xmm1, xmm0, 0x55
mov esi, dword [eax]
mov eax, esi
mov dword [esp + 0x58], esi
mov edi, dword [esp + 0x20]
mul edi
mov dword [esp + 0x38], eax
mov dword [esp + 4], edx
movd eax, xmm1
mov dword [esp + 8], eax
mul edi
mov ebx, edx
mov ebp, eax
add ebp, dword [esp + 4]
adc ebx, 0
mov eax, esi
mov edi, dword [esp + 0x14]
mul edi
mov esi, edx
add eax, ebp
mov dword [esp + 0x10], eax
adc esi, ebx
setb bl
mov eax, dword [esp + 8]
mul edi
add eax, esi
mov dword [esp + 0x74], eax
movzx eax, bl
adc edx, eax
mov dword [esp + 0xa8], edx
mov esi, dword [esp + 0x18]
mov eax, esi
mov edi, dword [esp + 0xc]
mul edi
mov dword [esp + 4], edx
mov dword [esp + 0x30], eax
mov ebp, dword [esp + 0x1c]
mov eax, ebp
mul edi
mov edi, edx
mov ebx, eax
add ebx, dword [esp + 4]
adc edi, 0
mov eax, esi
mul dword [esp]
mov esi, edx
add eax, ebx
mov dword [esp + 0x78], eax
adc esi, edi
setb bl
mov eax, ebp
mul dword [esp]
add eax, esi
mov dword [esp + 0x6c], eax
movzx eax, bl
adc edx, eax
mov dword [esp + 0x70], edx
mov eax, dword [esp + 0x15c]
movdqu xmm1, xmmword [eax + 0x10]
pshufd xmm2, xmm1, 0xff
pshufd xmm3, xmm1, 0xee
movd ebp, xmm3
mov eax, ebp
mov dword [esp + 0x5c], ebp
mov edi, dword [esp + 0x4c]
mul edi
mov dword [esp + 0xa4], eax
mov esi, edx
movd eax, xmm2
mov dword [esp + 0xc], eax
mul edi
mov edi, edx
mov ebx, eax
add ebx, esi
adc edi, 0
mov eax, ebp
mov ebp, dword [esp + 0x48]
mul ebp
mov esi, edx
add eax, ebx
mov dword [esp + 0xa0], eax
adc esi, edi
setb bl
mov eax, dword [esp + 0xc]
mul ebp
add eax, esi
mov dword [esp + 0x98], eax
movzx eax, bl
adc edx, eax
mov dword [esp + 0x9c], edx
pshufd xmm1, xmm1, 0x55
mov eax, dword [esp + 0x15c]
mov esi, dword [eax + 0x10]
mov eax, esi
mov dword [esp + 0x60], esi
mov edi, dword [esp + 0x2c]
mul edi
mov dword [esp + 0x94], eax
mov dword [esp], edx
movd eax, xmm1
mov dword [esp + 4], eax
mul edi
mov ebx, edx
mov ebp, eax
add ebp, dword [esp]
adc ebx, 0
mov eax, esi
mov esi, dword [esp + 0x24]
mul esi
mov edi, edx
add eax, ebp
mov dword [esp + 0x90], eax
adc edi, ebx
setb bl
mov eax, dword [esp + 4]
mul esi
add eax, edi
mov dword [esp + 0x88], eax
movzx eax, bl
adc edx, eax
mov dword [esp + 0x8c], edx
pshufd xmm1, xmm0, 0xff
pshufd xmm0, xmm0, 0xee
movd edi, xmm0
mov eax, edi
mov dword [esp + 0x50], edi
mov esi, dword [esp + 0x28]
mul esi
mov dword [esp + 0xb0], eax
mov dword [esp + 0x44], edx
movd eax, xmm1
mov dword [esp], eax
mul esi
mov ebp, edx
mov ebx, eax
add ebx, dword [esp + 0x44]
adc ebp, 0
mov eax, edi
mov esi, dword [esp + 0x54]
mul esi
mov edi, edx
add eax, ebx
mov dword [esp + 0x44], eax
adc edi, ebp
setb bl
mov eax, dword [esp]
mul esi
mov ebp, edx
add eax, edi
movzx edx, bl
adc ebp, edx
mov edx, dword [esp + 0xb0]
add edx, dword [esp + 0x38]
mov esi, dword [esp + 0x44]
adc esi, dword [esp + 0x10]
adc eax, dword [esp + 0x74]
adc ebp, dword [esp + 0xa8]
add edx, dword [esp + 0x94]
adc esi, dword [esp + 0x90]
adc eax, dword [esp + 0x88]
adc ebp, dword [esp + 0x8c]
add edx, dword [esp + 0xa4]
adc esi, dword [esp + 0xa0]
adc eax, dword [esp + 0x98]
adc ebp, dword [esp + 0x9c]
add edx, dword [esp + 0x30]
mov dword [esp + 0xb0], edx
adc esi, dword [esp + 0x78]
mov dword [esp + 0x44], esi
adc eax, dword [esp + 0x6c]
mov dword [esp + 0xa8], eax
adc ebp, dword [esp + 0x70]
mov dword [esp + 0x38], ebp
mov edi, dword [esp + 0x50]
mov eax, edi
mov ebx, dword [esp + 0x20]
mul ebx
mov esi, edx
mov dword [esp + 0x30], eax
mov eax, dword [esp]
mul ebx
mov ebx, edx
mov ebp, eax
add ebp, esi
adc ebx, 0
mov eax, edi
mov edi, dword [esp + 0x14]
mul edi
mov esi, edx
add eax, ebp
mov dword [esp + 0x10], eax
adc esi, ebx
setb bl
mov eax, dword [esp]
mul edi
add eax, esi
mov dword [esp + 0x70], eax
movzx eax, bl
adc edx, eax
mov dword [esp + 0x74], edx
mov ebp, dword [esp + 0x58]
mov eax, ebp
mov edi, dword [esp + 0x64]
mul edi
mov esi, edx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 8]
mul edi
mov edi, edx
mov ebx, eax
add ebx, esi
adc edi, 0
mov eax, ebp
mov ebp, dword [esp + 0x40]
mul ebp
mov esi, edx
add eax, ebx
mov ebx, eax
adc esi, edi
setb byte [esp + 0x6c]
mov eax, dword [esp + 8]
mul ebp
add eax, esi
movzx esi, byte [esp + 0x6c]
adc edx, esi
mov esi, dword [esp + 0x30]
add dword [esp + 0x78], esi
adc ebx, dword [esp + 0x10]
mov dword [esp + 0x6c], ebx
adc eax, dword [esp + 0x70]
mov dword [esp + 0xa4], eax
adc edx, dword [esp + 0x74]
mov dword [esp + 0x70], edx
mov ebp, dword [esp + 0x18]
mov eax, ebp
mov edi, dword [esp + 0x4c]
mul edi
mov esi, edx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x1c]
mul edi
mov edi, edx
mov ebx, eax
add ebx, esi
adc edi, 0
mov eax, ebp
mov ebp, dword [esp + 0x48]
mul ebp
mov esi, edx
add eax, ebx
mov dword [esp + 0xa0], eax
adc esi, edi
setb bl
mov eax, dword [esp + 0x1c]
mul ebp
add eax, esi
mov dword [esp + 0x98], eax
movzx eax, bl
adc edx, eax
mov dword [esp + 0x9c], edx
mov ebp, dword [esp + 0x5c]
mov eax, ebp
mov edi, dword [esp + 0x2c]
mul edi
mov esi, edx
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xc]
mul edi
mov edi, edx
mov ebx, eax
add ebx, esi
adc edi, 0
mov eax, ebp
mov ebp, dword [esp + 0x24]
mul ebp
mov esi, edx
add eax, ebx
mov dword [esp + 0x90], eax
adc esi, edi
setb bl
mov eax, dword [esp + 0xc]
mul ebp
add eax, esi
mov dword [esp + 0x134], eax
movzx eax, bl
adc edx, eax
mov dword [esp + 0x88], edx
mov ebp, dword [esp + 0x60]
mov eax, ebp
mov edi, dword [esp + 0x28]
mul edi
mov esi, edx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 4]
mul edi
mov edi, edx
mov ebx, eax
add ebx, esi
adc edi, 0
mov eax, ebp
mov ebp, dword [esp + 0x54]
mul ebp
mov esi, edx
add eax, ebx
mov dword [esp + 0x48], eax
adc esi, edi
setb byte [esp + 0x10]
mov ebx, dword [esp + 4]
mov eax, ebx
mul ebp
add eax, esi
mov dword [esp + 0x30], eax
movzx eax, byte [esp + 0x10]
adc edx, eax
mov dword [esp + 0x120], edx
mov ebp, dword [esp + 0x60]
mov eax, ebp
mov edi, dword [esp + 0x20]
mul edi
mov esi, edx
mov dword [esp + 0x8c], eax
mov eax, ebx
mul edi
mov edi, edx
mov ebx, eax
add ebx, esi
adc edi, 0
mov eax, ebp
mov ebp, dword [esp + 0x14]
mul ebp
mov esi, edx
add eax, ebx
mov dword [esp + 0x130], eax
adc esi, edi
setb bl
mov eax, dword [esp + 4]
mul ebp
add eax, esi
mov dword [esp + 0x128], eax
movzx eax, bl
adc edx, eax
mov dword [esp + 0x12c], edx
mov ebp, dword [esp + 0x50]
mov eax, ebp
mov edi, dword [esp + 0x64]
mul edi
mov esi, edx
mov dword [esp + 0x124], eax
mov eax, dword [esp]
mul edi
mov edi, edx
mov ebx, eax
add ebx, esi
adc edi, 0
mov eax, ebp
mov ebp, dword [esp + 0x40]
mul ebp
mov esi, edx
add eax, ebx
mov dword [esp + 0x11c], eax
adc esi, edi
setb bl
mov eax, dword [esp]
mul ebp
add eax, esi
mov dword [esp + 0x114], eax
movzx eax, bl
adc edx, eax
mov dword [esp + 0x118], edx
mov ebp, dword [esp + 0x58]
mov eax, ebp
mov edi, dword [esp + 0x34]
mul edi
mov esi, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 8]
mul edi
mov edi, edx
mov ebx, eax
add ebx, esi
adc edi, 0
mov eax, ebp
mov ebp, dword [esp + 0x68]
mul ebp
mov esi, edx
add eax, ebx
mov dword [esp + 0x10c], eax
adc esi, edi
setb bl
mov eax, dword [esp + 8]
mul ebp
add eax, esi
mov dword [esp + 0x104], eax
movzx eax, bl
adc edx, eax
mov dword [esp + 0x108], edx
mov esi, dword [esp + 0x18]
mov eax, esi
mov edi, dword [esp + 0x2c]
mul edi
mov dword [esp + 0x84], edx
mov dword [esp + 0x110], eax
mov ebp, dword [esp + 0x1c]
mov eax, ebp
mul edi
mov edi, edx
mov ebx, eax
add ebx, dword [esp + 0x84]
adc edi, 0
mov eax, esi
mul dword [esp + 0x24]
mov esi, edx
add eax, ebx
mov dword [esp + 0x84], eax
adc esi, edi
setb bl
mov eax, ebp
mul dword [esp + 0x24]
add eax, esi
mov dword [esp + 0xf8], eax
movzx eax, bl
adc edx, eax
mov dword [esp + 0xfc], edx
mov ebp, dword [esp + 0x5c]
mov eax, ebp
mov edi, dword [esp + 0x28]
mul edi
mov esi, edx
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xc]
mul edi
mov edi, edx
mov ebx, eax
add ebx, esi
adc edi, 0
mov eax, ebp
mov ebp, dword [esp + 0x54]
mul ebp
mov esi, edx
add eax, ebx
mov dword [esp + 0xe4], eax
adc esi, edi
setb bl
mov edi, dword [esp + 0xc]
mov eax, edi
mul ebp
add eax, esi
mov dword [esp + 0xd8], eax
movzx eax, bl
adc edx, eax
mov dword [esp + 0xdc], edx
mov ebp, dword [esp + 0x5c]
mov eax, ebp
mov ebx, dword [esp + 0x20]
mul ebx
mov esi, edx
mov dword [esp + 0x100], eax
mov eax, edi
mul ebx
mov edi, edx
mov ebx, eax
add ebx, esi
adc edi, 0
mov eax, ebp
mov ebp, dword [esp + 0x14]
mul ebp
mov esi, edx
add eax, ebx
mov dword [esp + 0xf4], eax
adc esi, edi
setb bl
mov eax, dword [esp + 0xc]
mul ebp
add eax, esi
mov dword [esp + 0xe8], eax
movzx eax, bl
adc edx, eax
mov dword [esp + 0xec], edx
mov ebp, dword [esp + 0x60]
mov eax, ebp
mov edi, dword [esp + 0x64]
mul edi
mov esi, edx
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 4]
mul edi
mov edi, edx
mov ebx, eax
add ebx, esi
adc edi, 0
mov eax, ebp
mov ebp, dword [esp + 0x40]
mul ebp
mov esi, edx
add eax, ebx
mov dword [esp + 0xd4], eax
adc esi, edi
setb bl
mov eax, dword [esp + 4]
mul ebp
add eax, esi
mov dword [esp + 0xcc], eax
movzx eax, bl
adc edx, eax
mov dword [esp + 0xd0], edx
mov ebp, dword [esp + 0x50]
mov eax, ebp
mov edi, dword [esp + 0x34]
mul edi
mov esi, edx
mov dword [esp + 0xc8], eax
mov eax, dword [esp]
mul edi
mov edi, edx
mov ebx, eax
add ebx, esi
adc edi, 0
mov eax, ebp
mov ebp, dword [esp + 0x68]
mul ebp
mov esi, edx
add eax, ebx
mov dword [esp + 0xc4], eax
adc esi, edi
setb bl
mov eax, dword [esp]
mul ebp
add eax, esi
mov dword [esp + 0xbc], eax
movzx eax, bl
adc edx, eax
mov dword [esp + 0xc0], edx
mov ebp, dword [esp + 0x58]
mov eax, ebp
mov edi, dword [esp + 0xb4]
mul edi
mov esi, edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 8]
mul edi
mov edi, edx
mov ebx, eax
add ebx, esi
adc edi, 0
mov eax, ebp
mov esi, dword [esp + 0x3c]
mul esi
mov ebp, edx
add eax, ebx
mov dword [esp + 0x24], eax
adc ebp, edi
setb bl
mov eax, dword [esp + 8]
mul esi
add eax, ebp
mov dword [esp + 0x2c], eax
movzx eax, bl
adc edx, eax
mov dword [esp + 0x20], edx
mov ebx, dword [esp + 0x18]
mov eax, ebx
mov esi, dword [esp + 0x28]
mul esi
mov edi, edx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x1c]
mul esi
mov ebp, edx
mov esi, eax
add esi, edi
adc ebp, 0
mov eax, ebx
mov ebx, dword [esp + 0x54]
mul ebx
mov edi, edx
add eax, esi
mov dword [esp + 0x18], eax
adc edi, ebp
setb byte [esp + 0x28]
mov eax, dword [esp + 0x1c]
mul ebx
add eax, edi
mov dword [esp + 0x54], eax
movzx eax, byte [esp + 0x28]
adc edx, eax
mov dword [esp + 0x28], edx
mov ebx, dword [esp + 0x34]
mov eax, ebx
mov edi, dword [esp + 0x60]
mul edi
mov esi, edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x68]
mul edi
mov edi, edx
mov ebp, eax
add ebp, esi
adc edi, 0
mov eax, ebx
mov ebx, dword [esp + 4]
mul ebx
mov esi, edx
add eax, ebp
mov dword [esp + 0x60], eax
adc esi, edi
setb byte [esp + 0x34]
mov eax, dword [esp + 0x68]
mul ebx
add eax, esi
mov dword [esp + 0x68], eax
movzx eax, byte [esp + 0x34]
adc edx, eax
mov dword [esp + 4], edx
mov esi, dword [esp + 0xac]
mov eax, esi
mov edi, dword [esp + 0x58]
mul edi
mov dword [esp + 0x80], edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x7c]
mul edi
mov ebp, edx
mov ebx, eax
add ebx, dword [esp + 0x80]
adc ebp, 0
mov eax, esi
mov edi, dword [esp + 8]
mul edi
mov esi, edx
add eax, ebx
mov dword [esp + 0x58], eax
adc esi, ebp
setb bl
mov eax, dword [esp + 0x7c]
mul edi
add eax, esi
mov dword [esp + 0x7c], eax
movzx eax, bl
adc edx, eax
mov dword [esp + 0xac], edx
mov ebp, dword [esp + 0x64]
mov eax, ebp
mov esi, dword [esp + 0x5c]
mul esi
mov edi, edx
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x40]
mul esi
mov ebx, edx
mov esi, eax
add esi, edi
adc ebx, 0
mov eax, ebp
mov ebp, dword [esp + 0xc]
mul ebp
mov edi, edx
add eax, esi
mov dword [esp + 0x64], eax
adc edi, ebx
setb bl
mov eax, dword [esp + 0x40]
mul ebp
add eax, edi
mov dword [esp + 0x40], eax
movzx eax, bl
adc edx, eax
mov dword [esp + 0xc], edx
mov ebp, dword [esp + 0xb4]
mov eax, ebp
mov edi, dword [esp + 0x50]
mul edi
mov esi, edx
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x3c]
mul edi
mov edi, edx
mov ebx, eax
add ebx, esi
adc edi, 0
mov eax, ebp
mov ebp, dword [esp]
mul ebp
mov esi, edx
add eax, ebx
mov dword [esp + 0x50], eax
adc esi, edi
setb bl
mov eax, dword [esp + 0x3c]
mul ebp
add eax, esi
mov dword [esp + 8], eax
movzx esi, bl
adc edx, esi
mov dword [esp], edx
mov eax, dword [esp + 0x38]
mov edi, eax
mov esi, dword [esp + 0xa8]
shld eax, esi, 0xd
mov dword [esp + 0x38], eax
shr edi, 0x13
mov ebx, dword [esp + 0x44]
shld esi, ebx, 0xd
mov eax, 0x7ffff
and ebx, eax
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x4c]
add ebx, dword [esp + 0x78]
mov eax, dword [esp + 0x48]
adc eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x30]
adc edx, dword [esp + 0xa4]
mov ebp, dword [esp + 0x120]
adc ebp, dword [esp + 0x70]
add ebx, dword [esp + 0x94]
adc eax, dword [esp + 0x90]
adc edx, dword [esp + 0x134]
adc ebp, dword [esp + 0x88]
add ebx, dword [esp + 0x74]
adc eax, dword [esp + 0xa0]
adc edx, dword [esp + 0x98]
adc ebp, dword [esp + 0x9c]
add ebx, esi
mov dword [esp + 0x4c], ebx
adc eax, dword [esp + 0x38]
adc edx, edi
adc ebp, 0
mov esi, ebp
shld esi, edx, 0xd
mov dword [esp + 0x3c], esi
shr ebp, 0x13
shld edx, eax, 0xd
mov dword [esp + 0x30], edx
mov ebx, 0x7ffff
and eax, ebx
mov dword [esp + 0x48], eax
mov esi, dword [esp + 0x10]
add esi, dword [esp + 0x124]
mov edi, dword [esp + 0x10c]
adc edi, dword [esp + 0x11c]
mov edx, dword [esp + 0x104]
adc edx, dword [esp + 0x114]
mov eax, dword [esp + 0x108]
adc eax, dword [esp + 0x118]
add esi, dword [esp + 0x8c]
adc edi, dword [esp + 0x130]
adc edx, dword [esp + 0x128]
adc eax, dword [esp + 0x12c]
add esi, dword [esp + 0xf0]
adc edi, dword [esp + 0xe4]
adc edx, dword [esp + 0xd8]
adc eax, dword [esp + 0xdc]
add esi, dword [esp + 0x110]
adc edi, dword [esp + 0x84]
adc edx, dword [esp + 0xf8]
adc eax, dword [esp + 0xfc]
add esi, dword [esp + 0x30]
mov dword [esp + 0x10], esi
adc edi, dword [esp + 0x3c]
adc edx, ebp
adc eax, 0
and ebx, edi
mov dword [esp + 0x3c], ebx
mov esi, eax
shld esi, edx, 0xd
mov dword [esp + 0x38], esi
shld edx, edi, 0xd
shr eax, 0x13
mov ebp, dword [esp + 0x14]
add ebp, dword [esp + 0xc8]
mov ebx, dword [esp + 0x24]
adc ebx, dword [esp + 0xc4]
mov esi, dword [esp + 0x2c]
adc esi, dword [esp + 0xbc]
mov edi, dword [esp + 0x20]
adc edi, dword [esp + 0xc0]
add ebp, dword [esp + 0xe0]
adc ebx, dword [esp + 0xd4]
adc esi, dword [esp + 0xcc]
adc edi, dword [esp + 0xd0]
add ebp, dword [esp + 0x100]
adc ebx, dword [esp + 0xf4]
adc esi, dword [esp + 0xe8]
adc edi, dword [esp + 0xec]
add ebp, dword [esp + 0xb8]
adc ebx, dword [esp + 0x18]
adc esi, dword [esp + 0x54]
adc edi, dword [esp + 0x28]
add ebp, edx
mov dword [esp + 0x14], ebp
adc ebx, dword [esp + 0x38]
mov dword [esp + 0x24], ebx
adc esi, eax
adc edi, 0
mov eax, edi
shld eax, esi, 0xd
mov dword [esp + 0x18], eax
shld esi, ebx, 0xd
mov dword [esp + 0x2c], esi
shr edi, 0x13
mov dword [esp + 0x20], edi
mov edx, dword [esp + 0x5c]
add edx, dword [esp + 0x80]
mov edi, dword [esp + 0x50]
adc edi, dword [esp + 0x64]
mov eax, dword [esp + 8]
adc eax, dword [esp + 0x40]
mov dword [esp + 8], eax
mov eax, dword [esp]
adc eax, dword [esp + 0xc]
mov dword [esp], eax
mov eax, dword [esp + 0x34]
add eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x58]
adc ebp, dword [esp + 0x60]
mov ebx, dword [esp + 0x7c]
adc ebx, dword [esp + 0x68]
mov esi, dword [esp + 0xac]
adc esi, dword [esp + 4]
add eax, edx
adc ebp, edi
adc ebx, dword [esp + 8]
adc esi, dword [esp]
add eax, dword [esp + 0x144]
adc ebp, dword [esp + 0x140]
adc ebx, dword [esp + 0x138]
adc esi, dword [esp + 0x13c]
add eax, dword [esp + 0x2c]
adc ebp, dword [esp + 0x18]
adc ebx, dword [esp + 0x20]
movd xmm0, eax
adc esi, 0
movd xmm1, dword [esp + 0x24]
movd xmm2, ebp
shrd ebp, ebx, 0x13
mov eax, ebp
movd xmm3, dword [esp + 0x14]
shld esi, ebx, 0xd
mov edx, 0x13
mul edx
lea edi, [esi + esi*8]
lea edi, [esi + edi*2]
add edx, edi
add eax, dword [esp + 0xb0]
adc edx, dword [esp + 0x44]
movd xmm4, edx
shr edx, 0x13
add edx, dword [esp + 0x4c]
movd xmm5, edx
movd xmm6, eax
mov eax, dword [esp + 0x48]
adc eax, 0
movd xmm7, eax
shr eax, 0x13
add eax, dword [esp + 0x10]
punpckldq xmm5, xmm7
punpckldq xmm6, xmm4
punpcklqdq xmm6, xmm5
movdqa xmm4, xmmword [0x430160]
pand xmm6, xmm4
movdqu xmmword [ecx], xmm6
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x3c]
adc eax, 0
mov dword [ecx + 0x14], eax
punpckldq xmm0, xmm2
punpckldq xmm3, xmm1
punpcklqdq xmm3, xmm0
pand xmm3, xmm4
movdqu xmmword [ecx + 0x18], xmm3
add esp, 0x148
pop esi
pop edi
pop ebx
pop ebp
ret