Function at 0x443520
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x2f0
mov edi, edx
mov esi, ecx
lea eax, [esp + 0x68]
push 0x280
push 0
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov eax, dword [esi + 8]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0x18]
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x20]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0x28]
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x34]
mov dword [esp + 0x48], eax
mov eax, dword [esi + 0x30]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x3c]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x38]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x44]
mov dword [esp + 8], eax
mov dword [esp + 0x58], esi
mov eax, dword [esi + 0x40]
mov dword [esp + 0x18], eax
xor eax, eax
nop dword [eax]
mov ecx, dword [edi + eax*8]
mov edx, dword [edi + eax*8 + 4]
bswap edx
bswap ecx
mov dword [esp + eax*8 + 0x6c], ecx
mov dword [esp + eax*8 + 0x68], edx
add eax, 1
cmp eax, 0x10
jne 0x4435c0
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
xor eax, eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x54], edx
nop dword [eax]
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + eax*8 + 0xdc]
mov edi, dword [esp + eax*8 + 0xd8]
mov edx, edi
shld edx, ecx, 0xd
mov esi, ecx
shld esi, edi, 3
xor esi, edx
mov edx, ecx
shld edx, edi, 0xd
mov ebx, ecx
shld ebx, edi, 0x1a
shld edi, ecx, 3
xor edi, edx
xor edi, ebx
shr ecx, 6
xor ecx, esi
add edi, dword [esp + eax*8 + 0xb0]
adc ecx, dword [esp + eax*8 + 0xb4]
mov edx, dword [esp + eax*8 + 0x70]
mov dword [esp + 0xc], edx
mov esi, dword [esp + eax*8 + 0x74]
mov ebx, edx
shld ebx, esi, 0x1f
mov dword [esp + 0x50], ebx
mov ebx, esi
shld ebx, edx, 0x1f
mov dword [esp + 0x5c], ebx
mov dword [esp + 4], esi
shld edx, esi, 0x18
xor edx, dword [esp + 0x50]
mov dword [esp + 0x50], edx
mov edx, esi
mov esi, dword [esp + 0xc]
shld edx, esi, 0x18
xor edx, dword [esp + 0x5c]
mov ebx, dword [esp + 4]
mov esi, dword [esp + 0xc]
shld ebx, esi, 0x19
xor ebx, edx
mov esi, dword [esp + 4]
mov edx, esi
shr edx, 7
xor edx, dword [esp + 0x50]
add edi, dword [esp + 0x64]
adc ecx, dword [esp + 0x60]
add edi, ebx
adc ecx, edx
mov dword [esp + eax*8 + 0xe8], edi
mov dword [esp + eax*8 + 0xec], ecx
add eax, 1
mov ecx, dword [esp + 0xc]
mov edx, esi
cmp eax, 0x40
jne 0x4435f0
mov dword [esp + 0xc], 0
nop dword [eax + eax]
mov ebx, dword [esp + 0x34]
mov eax, ebx
mov edi, dword [esp + 0x38]
shld eax, edi, 0x12
mov edx, ebx
shld edx, edi, 0xe
xor edx, eax
mov ecx, edi
shld ecx, ebx, 0x12
mov esi, edi
shld esi, ebx, 0xe
mov eax, ebx
shld eax, edi, 0x17
xor esi, ecx
xor eax, esi
shld edi, ebx, 0x17
mov ecx, ebx
mov dword [esp + 0x34], ebx
xor edi, edx
add eax, dword [esp + 0x18]
adc edi, dword [esp + 8]
mov dword [esp + 4], edi
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x14]
xor esi, edx
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x30]
xor edi, ebx
and edi, ecx
and esi, dword [esp + 0x38]
xor esi, edx
xor edi, ebx
mov edx, dword [esp + 0xc]
add eax, dword [edx*8 + 0x4a7360]
mov ecx, dword [esp + 4]
adc ecx, dword [edx*8 + 0x4a7364]
add eax, dword [esp + 0x4c]
adc ecx, dword [esp + 0x54]
add eax, edi
mov dword [esp + 0x4c], eax
adc ecx, esi
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x28]
mov esi, ecx
mov ebx, dword [esp + 0x2c]
shld esi, ebx, 4
mov edx, ebx
shld edx, ecx, 0x1e
xor edx, esi
mov esi, ebx
shld esi, ecx, 4
mov edi, ecx
shld edi, ebx, 0x1e
mov eax, ecx
shld eax, ebx, 0x19
xor edi, esi
xor eax, edi
mov dword [esp + 0x18], eax
mov eax, ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], ecx
shld eax, ecx, 0x19
xor eax, edx
mov dword [esp + 8], eax
mov edx, dword [esp + 0x10]
or edx, ecx
and edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x10]
and esi, ecx
or esi, edx
mov edx, dword [esp + 0x20]
mov edi, edx
mov dword [esp + 0x20], edx
or edi, ebx
and edi, dword [esp + 0x44]
and edx, ebx
or edx, edi
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x4c]
add ebx, eax
mov edi, dword [esp + 0x40]
adc edi, dword [esp + 4]
mov ecx, dword [esp + 0x18]
add ecx, eax
mov eax, dword [esp + 8]
adc eax, dword [esp + 4]
add ecx, esi
mov dword [esp + 0x18], ecx
adc eax, edx
mov dword [esp + 8], eax
mov ecx, ebx
mov esi, edi
shld ecx, edi, 0x12
mov eax, ebx
shld eax, edi, 0xe
xor eax, ecx
mov ecx, edi
shld ecx, ebx, 0x12
mov edi, ebx
mov dword [esp + 0x24], ebx
mov edx, esi
mov ebx, esi
mov dword [esp + 0x40], esi
shld edx, edi, 0xe
mov esi, edi
shld esi, ebx, 0x17
xor edx, ecx
xor esi, edx
mov edi, ebx
mov ecx, dword [esp + 0x24]
shld edi, ecx, 0x17
xor edi, eax
mov ecx, dword [esp + 0x1c]
xor ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x48]
mov eax, edx
xor eax, dword [esp + 0x38]
and eax, ebx
and ecx, dword [esp + 0x24]
xor eax, edx
xor ecx, dword [esp + 0x1c]
add ecx, dword [esp + 0x30]
adc eax, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
add ecx, dword [edx*8 + 0x4a7368]
adc eax, dword [edx*8 + 0x4a736c]
add ecx, esi
adc eax, edi
add ecx, dword [esp + edx*8 + 0x70]
adc eax, dword [esp + edx*8 + 0x74]
mov edi, dword [esp + 0x18]
mov esi, edi
mov ebx, dword [esp + 8]
shld esi, ebx, 4
mov edx, ebx
shld edx, edi, 0x1e
xor edx, esi
mov esi, ebx
shld ebx, edi, 4
mov dword [esp + 0x14], ebx
mov ebx, edi
shld ebx, esi, 0x1e
mov esi, dword [esp + 8]
shld edi, esi, 0x19
xor ebx, dword [esp + 0x14]
xor edi, ebx
mov dword [esp + 0x30], edi
mov ebx, dword [esp + 8]
mov edi, ebx
mov esi, dword [esp + 0x18]
shld edi, esi, 0x19
xor edi, edx
mov edx, ebx
mov esi, dword [esp + 0x2c]
or edx, esi
and edx, dword [esp + 0x20]
and ebx, esi
or ebx, edx
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x18]
mov edx, ebx
mov esi, dword [esp + 0x28]
or edx, esi
and edx, dword [esp + 0x10]
and ebx, esi
or ebx, edx
add ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x14]
adc edx, edi
mov edi, dword [esp + 0x3c]
add edi, ecx
mov esi, dword [esp + 0x44]
adc esi, eax
add ebx, ecx
mov dword [esp + 0x30], ebx
adc edx, eax
mov dword [esp + 0x14], edx
mov ebx, edi
shld ebx, esi, 0x12
mov eax, esi
shld eax, edi, 0x12
mov edx, edi
shld edx, esi, 0xe
mov ecx, esi
shld esi, edi, 0xe
xor edx, ebx
xor esi, eax
mov eax, edi
shld eax, ecx, 0x17
xor eax, esi
mov dword [esp + 4], eax
mov eax, ecx
mov ebx, ecx
mov dword [esp + 0x44], ecx
shld eax, edi, 0x17
mov ecx, edi
mov dword [esp + 0x3c], edi
xor eax, edx
mov dword [esp + 0x4c], eax
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x38]
xor esi, eax
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x34]
xor edi, edx
and esi, ebx
and edi, ecx
xor esi, eax
xor edi, edx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0xc]
add edx, dword [eax*8 + 0x4a7370]
mov ecx, dword [esp + 0x48]
adc ecx, dword [eax*8 + 0x4a7374]
add edx, dword [esp + eax*8 + 0x78]
adc ecx, dword [esp + eax*8 + 0x7c]
add edx, edi
mov eax, ecx
adc eax, esi
add edx, dword [esp + 4]
mov dword [esp + 0x1c], edx
adc eax, dword [esp + 0x4c]
mov dword [esp + 0x48], eax
mov esi, dword [esp + 0x30]
mov eax, esi
mov edi, dword [esp + 0x14]
shld eax, edi, 4
mov edx, edi
shld edx, esi, 0x1e
xor edx, eax
mov ecx, edi
shld ecx, esi, 4
mov ebx, esi
shld esi, edi, 0x1e
mov eax, ebx
shld eax, edi, 0x19
xor esi, ecx
xor eax, esi
mov ecx, edi
shld ecx, ebx, 0x19
xor ecx, edx
mov edx, edi
mov esi, edi
mov edi, dword [esp + 8]
or edx, edi
and edx, dword [esp + 0x2c]
and esi, edi
or esi, edx
mov edx, ebx
mov ebx, dword [esp + 0x18]
or edx, ebx
and edx, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
and edi, ebx
or edi, edx
add edi, eax
adc esi, ecx
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
add ecx, ebx
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x20]
adc edx, eax
add ebx, edi
mov dword [esp + 0x1c], ebx
adc eax, esi
mov dword [esp + 0x48], eax
mov edi, ecx
mov dword [esp + 0x10], ecx
mov eax, ecx
mov esi, edx
shld eax, edx, 0x12
mov ecx, edx
shld ecx, edi, 0x12
mov edx, edi
shld edx, esi, 0xe
mov ebx, esi
mov dword [esp + 0x20], esi
shld esi, edi, 0xe
xor edx, eax
xor esi, ecx
mov eax, edi
shld eax, ebx, 0x17
xor eax, esi
mov dword [esp + 4], eax
mov ecx, ebx
shld ecx, edi, 0x17
xor ecx, edx
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
xor esi, eax
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x24]
xor edi, edx
and esi, dword [esp + 0x20]
and edi, dword [esp + 0x10]
xor esi, eax
xor edi, edx
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x34]
add eax, dword [ebx*8 + 0x4a7378]
mov edx, dword [esp + 0x38]
adc edx, dword [ebx*8 + 0x4a737c]
add eax, dword [esp + ebx*8 + 0x80]
adc edx, dword [esp + ebx*8 + 0x84]
add eax, edi
adc edx, esi
add eax, dword [esp + 4]
mov dword [esp + 0x34], eax
adc edx, ecx
mov dword [esp + 0x38], edx
mov esi, dword [esp + 0x1c]
mov eax, esi
mov edi, dword [esp + 0x48]
shld eax, edi, 4
mov edx, edi
shld edx, esi, 0x1e
xor edx, eax
mov ecx, edi
shld ecx, esi, 4
mov ebx, esi
shld esi, edi, 0x1e
mov eax, ebx
shld eax, edi, 0x19
xor esi, ecx
xor eax, esi
mov ecx, edi
shld ecx, ebx, 0x19
xor ecx, edx
mov edx, edi
mov esi, edi
mov edi, dword [esp + 0x14]
or edx, edi
and edx, dword [esp + 8]
and esi, edi
or esi, edx
mov edx, ebx
mov ebx, dword [esp + 0x30]
or edx, ebx
and edx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
and edi, ebx
or edi, edx
add edi, eax
adc esi, ecx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
add ecx, eax
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x38]
adc edx, ebx
add eax, edi
mov dword [esp + 0x34], eax
adc ebx, esi
mov dword [esp + 0x38], ebx
mov esi, ecx
mov edi, edx
mov dword [esp + 0x2c], edx
shld ecx, edx, 0x12
shld edx, esi, 0x12
mov eax, esi
mov ebx, esi
shld eax, edi, 0xe
mov esi, edi
shld esi, ebx, 0xe
xor eax, ecx
xor esi, edx
mov ecx, ebx
mov dword [esp + 0x28], ebx
mov edx, ebx
shld edx, edi, 0x17
xor edx, esi
mov dword [esp + 4], edx
mov ebx, edi
shld ebx, ecx, 0x17
xor ebx, eax
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x44]
xor esi, eax
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x3c]
xor edi, ecx
and esi, dword [esp + 0x2c]
and edi, dword [esp + 0x28]
xor esi, eax
xor edi, ecx
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0xc]
add edx, dword [eax*8 + 0x4a7380]
mov ecx, dword [esp + 0x40]
adc ecx, dword [eax*8 + 0x4a7384]
add edx, dword [esp + eax*8 + 0x88]
adc ecx, dword [esp + eax*8 + 0x8c]
add edx, edi
adc ecx, esi
add edx, dword [esp + 4]
mov dword [esp + 0x24], edx
adc ecx, ebx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x34]
mov esi, ecx
mov ebx, dword [esp + 0x38]
shld esi, ebx, 4
mov edx, ebx
shld edx, ecx, 0x1e
xor edx, esi
mov esi, ebx
mov edi, ebx
shld edi, ecx, 4
mov ebx, ecx
shld ebx, esi, 0x1e
mov eax, esi
mov esi, ecx
shld esi, eax, 0x19
xor ebx, edi
xor esi, ebx
mov ebx, eax
mov edi, eax
shld edi, ecx, 0x19
xor edi, edx
mov edx, eax
mov eax, dword [esp + 0x48]
or edx, eax
and edx, dword [esp + 0x14]
and ebx, eax
or ebx, edx
mov dword [esp + 0x40], ebx
mov edx, ecx
mov eax, dword [esp + 0x1c]
or edx, eax
and edx, dword [esp + 0x30]
and ecx, eax
or ecx, edx
add ecx, esi
mov eax, dword [esp + 0x40]
adc eax, edi
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
add edi, esi
mov dword [esp + 0x18], edi
mov ebx, dword [esp + 8]
mov edx, dword [esp + 4]
adc ebx, edx
mov dword [esp + 8], ebx
add ecx, esi
mov dword [esp + 0x24], ecx
adc eax, edx
mov dword [esp + 0x40], eax
mov ecx, edi
shld ecx, ebx, 0x12
mov edx, ebx
shld edx, edi, 0x12
mov eax, edi
shld eax, ebx, 0xe
mov esi, ebx
shld esi, edi, 0xe
xor eax, ecx
xor esi, edx
mov ecx, edi
shld ecx, ebx, 0x17
xor ecx, esi
mov dword [esp + 4], ecx
mov esi, ebx
shld esi, edi, 0x17
xor esi, eax
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
xor ecx, eax
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
xor edi, edx
and ecx, dword [esp + 8]
and edi, dword [esp + 0x18]
xor ecx, eax
xor edi, edx
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x3c]
add eax, dword [edx*8 + 0x4a7388]
mov ebx, dword [esp + 0x44]
adc ebx, dword [edx*8 + 0x4a738c]
add eax, dword [esp + edx*8 + 0x90]
adc ebx, dword [esp + edx*8 + 0x94]
add eax, edi
adc ebx, ecx
mov edx, ebx
add eax, dword [esp + 4]
mov dword [esp + 0x3c], eax
adc edx, esi
mov dword [esp + 4], edx
mov ecx, dword [esp + 0x24]
mov esi, ecx
mov ebx, dword [esp + 0x40]
shld esi, ebx, 4
mov edx, ebx
shld edx, ecx, 0x1e
xor edx, esi
mov edi, ebx
mov eax, ebx
shld edi, ecx, 4
mov ebx, ecx
shld ebx, eax, 0x1e
mov esi, ecx
shld esi, eax, 0x19
xor ebx, edi
xor esi, ebx
mov edi, eax
shld edi, ecx, 0x19
xor edi, edx
mov edx, eax
mov ebx, eax
mov eax, dword [esp + 0x38]
or edx, eax
and edx, dword [esp + 0x48]
and ebx, eax
or ebx, edx
mov dword [esp + 0x44], ebx
mov edx, ecx
mov eax, dword [esp + 0x34]
or edx, eax
and edx, dword [esp + 0x1c]
and ecx, eax
or ecx, edx
add ecx, esi
mov eax, dword [esp + 0x44]
adc eax, edi
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x3c]
add edi, esi
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 4]
adc ebx, edx
mov dword [esp + 0x14], ebx
add ecx, esi
mov dword [esp + 0x3c], ecx
adc eax, edx
mov dword [esp + 0x44], eax
mov ecx, edi
shld ecx, ebx, 0x12
mov edx, ebx
shld edx, edi, 0x12
mov eax, edi
shld eax, ebx, 0xe
mov esi, ebx
shld esi, edi, 0xe
xor eax, ecx
xor esi, edx
mov ecx, edi
shld ecx, ebx, 0x17
xor ecx, esi
mov dword [esp + 4], ecx
mov esi, ebx
shld esi, edi, 0x17
mov edx, edi
mov dword [esp + 0x30], edi
xor esi, eax
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x2c]
xor ecx, eax
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x28]
xor edi, ebx
and ecx, dword [esp + 0x14]
and edi, edx
xor ecx, eax
xor edi, ebx
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
add eax, dword [edx*8 + 0x4a7390]
mov ebx, dword [esp + 0x20]
adc ebx, dword [edx*8 + 0x4a7394]
add eax, dword [esp + edx*8 + 0x98]
adc ebx, dword [esp + edx*8 + 0x9c]
add eax, edi
adc ebx, ecx
add eax, dword [esp + 4]
mov dword [esp + 0x10], eax
adc ebx, esi
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x3c]
mov esi, ebx
mov ecx, dword [esp + 0x44]
shld esi, ecx, 4
mov edx, ecx
shld edx, ebx, 0x1e
xor edx, esi
mov edi, ecx
shld edi, ebx, 4
mov esi, ebx
shld ebx, ecx, 0x1e
mov eax, esi
shld eax, ecx, 0x19
xor ebx, edi
xor eax, ebx
mov edi, ecx
shld edi, esi, 0x19
xor edi, edx
mov edx, ecx
mov ebx, dword [esp + 0x40]
or edx, ebx
and edx, dword [esp + 0x38]
and ecx, ebx
or ecx, edx
mov ebx, ecx
mov edx, esi
mov ecx, dword [esp + 0x24]
or edx, ecx
and edx, dword [esp + 0x34]
and esi, ecx
or esi, edx
add esi, eax
mov eax, ebx
adc eax, edi
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
add ebx, edi
mov dword [esp + 0x1c], ebx
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x20]
adc edx, ecx
add esi, edi
mov dword [esp + 0x10], esi
adc eax, ecx
mov dword [esp + 0x20], eax
mov ecx, ebx
shld ecx, edx, 0x12
mov edi, edx
shld edi, ebx, 0x12
mov eax, ebx
shld eax, edx, 0xe
mov esi, edx
shld esi, ebx, 0xe
xor eax, ecx
xor esi, edi
mov ecx, ebx
shld ecx, edx, 0x17
xor ecx, esi
mov dword [esp + 4], ecx
mov esi, edx
shld esi, ebx, 0x17
xor esi, eax
mov ecx, dword [esp + 0x14]
xor ecx, dword [esp + 8]
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x18]
xor edi, ebx
mov dword [esp + 0x48], edx
and ecx, edx
and edi, dword [esp + 0x1c]
xor ecx, dword [esp + 8]
xor edi, ebx
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 0x28]
add edx, dword [ebx*8 + 0x4a7398]
mov eax, dword [esp + 0x2c]
adc eax, dword [ebx*8 + 0x4a739c]
add edx, dword [esp + ebx*8 + 0xa0]
adc eax, dword [esp + ebx*8 + 0xa4]
add edx, edi
adc eax, ecx
add edx, dword [esp + 4]
mov dword [esp + 0x28], edx
adc eax, esi
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x10]
mov esi, eax
mov ecx, dword [esp + 0x20]
shld esi, ecx, 4
mov edx, ecx
shld edx, eax, 0x1e
xor edx, esi
mov edi, ecx
shld edi, eax, 4
mov ebx, eax
shld ebx, ecx, 0x1e
mov esi, eax
shld esi, ecx, 0x19
xor ebx, edi
xor esi, ebx
mov edi, ecx
shld edi, eax, 0x19
xor edi, edx
mov edx, ecx
mov eax, dword [esp + 0x44]
or edx, eax
and edx, dword [esp + 0x40]
mov ebx, ecx
and ebx, eax
or ebx, edx
mov ecx, dword [esp + 0x10]
mov edx, ecx
mov eax, dword [esp + 0x3c]
or edx, eax
and edx, dword [esp + 0x24]
and ecx, eax
or ecx, edx
add ecx, esi
adc ebx, edi
mov edx, dword [esp + 0x28]
add dword [esp + 0x34], edx
mov eax, dword [esp + 0x2c]
adc dword [esp + 0x38], eax
add ecx, edx
adc ebx, eax
cmp dword [esp + 0xc], 0x47
ja 0x443fa5
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + eax*8 + 0xa8]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + eax*8 + 0xac]
mov dword [esp + 0x54], ecx
add eax, 8
mov dword [esp + 0xc], eax
jmp 0x4436d0
movd xmm0, dword [esp + 0x10]
movd xmm5, dword [esp + 0x20]
movd xmm3, ecx
movd xmm4, ebx
movd xmm1, dword [esp + 0x24]
movd xmm6, dword [esp + 0x40]
movd xmm2, dword [esp + 0x3c]
movd xmm7, dword [esp + 0x44]
punpckldq xmm0, xmm5
movd xmm5, dword [esp + 0x1c]
punpckldq xmm3, xmm4
movd xmm4, dword [esp + 0x48]
punpcklqdq xmm3, xmm0
mov eax, dword [esp + 0x58]
movdqu xmm0, xmmword [eax + 8]
paddq xmm0, xmm3
movdqu xmm3, xmmword [eax + 0x18]
movdqu xmmword [eax + 8], xmm0
movd xmm0, dword [esp + 0x34]
punpckldq xmm1, xmm6
movd xmm6, dword [esp + 0x38]
punpckldq xmm2, xmm7
movd xmm7, dword [esp + 0x18]
punpcklqdq xmm2, xmm1
movd xmm1, dword [esp + 8]
paddq xmm2, xmm3
movd xmm3, dword [esp + 0x30]
movdqu xmmword [eax + 0x18], xmm2
movd xmm2, dword [esp + 0x14]
punpckldq xmm5, xmm4
punpckldq xmm0, xmm6
punpcklqdq xmm0, xmm5
movdqu xmm4, xmmword [eax + 0x28]
paddq xmm0, xmm4
movdqu xmmword [eax + 0x28], xmm0
punpckldq xmm7, xmm1
movdqu xmm0, xmmword [eax + 0x38]
punpckldq xmm3, xmm2
punpcklqdq xmm3, xmm7
paddq xmm3, xmm0
movdqu xmmword [eax + 0x38], xmm3
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret