Function at 0x5e8750
Capabilities:
Encode data using xor
Hash data using sha512
Resolve function by parsing pe exports

Disassembly:
push ebx
push esi
push edi
lea esp, [esp - 0x108]
mov dword [esp + 0x100], eax
mov bl, dl
mov eax, dword [esp + 0x100]
mov edx, esp
mov ecx, 0x40
call fcn.00403790
lea edx, [esp + 0x40]
mov eax, 0x612a50
mov ecx, 0x40
call fcn.00403790
mov eax, dword [esp + 0x100]
mov ecx, dword [eax + 0x40]
mov eax, dword [esp + 0x100]
mov edx, dword [eax + 0x44]
xor ecx, dword [esp + 0x60]
xor edx, dword [esp + 0x64]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
mov eax, dword [esp + 0x100]
mov ecx, dword [eax + 0x48]
mov edx, dword [esp + 0x100]
mov eax, dword [edx + 0x4c]
xor ecx, dword [esp + 0x68]
xor eax, dword [esp + 0x6c]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
test bl, bl
je 0x5e87ec
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
not edx
not eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
lea esi, [esi]
mov edx, dword [esp + 0x100]
lea eax, [edx + 0x50]
lea edx, [esp + 0x80]
mov ecx, pe_nt_image_headers32
call fcn.00403790
mov dword [esp + 0x104], 0xffffffff
lea esi, [esi]
add dword [esp + 0x104], 1
mov ecx, esp
mov ebx, dword [ecx]
mov esi, dword [ecx + 4]
add ebx, dword [ecx + 0x20]
adc esi, dword [ecx + 0x24]
mov ecx, dword [esp + 0x104]
shl ecx, 4
movzx ecx, byte [ecx + 0x612a90]
add ebx, dword [esp + ecx*8 + 0x80]
adc esi, dword [esp + ecx*8 + 0x84]
mov dword [esp], ebx
mov dword [esp + 4], esi
mov ecx, esp
mov ebx, dword [ecx + 8]
mov esi, dword [ecx + 0xc]
add ebx, dword [ecx + 0x28]
adc esi, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x104]
shl ecx, 4
movzx ecx, byte [ecx + 0x612a92]
add ebx, dword [esp + ecx*8 + 0x80]
adc esi, dword [esp + ecx*8 + 0x84]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov ecx, esp
mov ebx, dword [ecx + 0x10]
mov esi, dword [ecx + 0x14]
add ebx, dword [ecx + 0x30]
adc esi, dword [ecx + 0x34]
mov ecx, dword [esp + 0x104]
shl ecx, 4
movzx ecx, byte [ecx + 0x612a94]
add ebx, dword [esp + ecx*8 + 0x80]
adc esi, dword [esp + ecx*8 + 0x84]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], esi
mov ecx, esp
mov ebx, dword [ecx + 0x18]
mov esi, dword [ecx + 0x1c]
add ebx, dword [ecx + 0x38]
adc esi, dword [ecx + 0x3c]
mov ecx, dword [esp + 0x104]
shl ecx, 4
movzx ecx, byte [ecx + 0x612a96]
add ebx, dword [esp + ecx*8 + 0x80]
adc esi, dword [esp + ecx*8 + 0x84]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], esi
mov esi, esp
mov ecx, dword [esi + 0x60]
mov ebx, dword [esi + 0x64]
xor ecx, dword [esi]
xor ebx, dword [esi + 4]
mov edx, ecx
mov eax, ebx
xor ecx, ecx
xor esi, esi
mov ebx, eax
or ebx, esi
or ecx, edx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ecx
mov ebx, esp
mov esi, dword [ebx + 0x68]
mov ecx, dword [ebx + 0x6c]
xor esi, dword [ebx + 8]
xor ecx, dword [ebx + 0xc]
mov edx, esi
mov eax, ecx
xor ecx, ecx
xor esi, esi
mov ebx, eax
or ebx, esi
or ecx, edx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ecx
mov ecx, esp
mov ebx, dword [ecx + 0x70]
mov esi, dword [ecx + 0x74]
xor ebx, dword [ecx + 0x10]
xor esi, dword [ecx + 0x14]
mov edx, ebx
mov eax, esi
xor ecx, ecx
xor esi, esi
mov ebx, eax
or ebx, esi
or ecx, edx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ecx
mov ebx, esp
mov esi, dword [ebx + 0x78]
mov ecx, dword [ebx + 0x7c]
xor esi, dword [ebx + 0x18]
xor ecx, dword [ebx + 0x1c]
mov edx, esi
mov eax, ecx
xor ecx, ecx
xor ebx, ebx
mov esi, eax
or esi, ebx
or ecx, edx
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], ecx
mov ecx, esp
mov ebx, dword [ecx + 0x40]
mov esi, dword [ecx + 0x44]
add ebx, dword [ecx + 0x60]
adc esi, dword [ecx + 0x64]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], esi
mov ebx, esp
mov ecx, dword [ebx + 0x48]
mov esi, dword [ebx + 0x4c]
add ecx, dword [ebx + 0x68]
adc esi, dword [ebx + 0x6c]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], esi
mov ecx, esp
mov ebx, dword [ecx + 0x50]
mov esi, dword [ecx + 0x54]
add ebx, dword [ecx + 0x70]
adc esi, dword [ecx + 0x74]
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], esi
mov ebx, esp
mov ecx, dword [ebx + 0x58]
mov esi, dword [ebx + 0x5c]
add ecx, dword [ebx + 0x78]
adc esi, dword [ebx + 0x7c]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], esi
mov ecx, esp
mov ebx, dword [ecx + 0x20]
mov esi, dword [ecx + 0x24]
xor ebx, dword [ecx + 0x40]
xor esi, dword [ecx + 0x44]
mov edx, ebx
mov eax, esi
mov edi, edx
mov esi, eax
shrd edi, esi, 0x18
shr esi, 0x18
mov ebx, edx
xor ecx, ecx
shl ebx, 8
or edi, ecx
or esi, ebx
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], esi
mov ebx, esp
mov ecx, dword [ebx + 0x28]
mov esi, dword [ebx + 0x2c]
xor ecx, dword [ebx + 0x48]
xor esi, dword [ebx + 0x4c]
mov edx, ecx
mov eax, esi
mov edi, edx
mov esi, eax
shrd edi, esi, 0x18
shr esi, 0x18
mov ebx, edx
xor ecx, ecx
shl ebx, 8
or edi, ecx
or esi, ebx
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], esi
mov esi, esp
mov ecx, dword [esi + 0x30]
mov ebx, dword [esi + 0x34]
xor ecx, dword [esi + 0x50]
xor ebx, dword [esi + 0x54]
mov edx, ecx
mov eax, ebx
mov esi, edx
mov ebx, eax
shrd esi, ebx, 0x18
shr ebx, 0x18
mov ecx, edx
xor edi, edi
shl ecx, 8
or esi, edi
or ebx, ecx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebx
mov ecx, esp
mov ebx, dword [ecx + 0x38]
mov esi, dword [ecx + 0x3c]
xor ebx, dword [ecx + 0x58]
xor esi, dword [ecx + 0x5c]
mov edx, ebx
mov eax, esi
mov edi, edx
mov esi, eax
shrd edi, esi, 0x18
shr esi, 0x18
mov ebx, edx
xor ecx, ecx
shl ebx, 8
or edi, ecx
or esi, ebx
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], esi
mov ecx, esp
mov ebx, dword [ecx]
mov esi, dword [ecx + 4]
add ebx, dword [ecx + 0x20]
adc esi, dword [ecx + 0x24]
mov ecx, dword [esp + 0x104]
shl ecx, 4
movzx ecx, byte [ecx + 0x612a91]
add ebx, dword [esp + ecx*8 + 0x80]
adc esi, dword [esp + ecx*8 + 0x84]
mov dword [esp], ebx
mov dword [esp + 4], esi
mov ecx, esp
mov esi, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
add esi, dword [ecx + 0x28]
adc ebx, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x104]
shl ecx, 4
movzx ecx, byte [ecx + 0x612a93]
add esi, dword [esp + ecx*8 + 0x80]
adc ebx, dword [esp + ecx*8 + 0x84]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
mov ecx, esp
mov ebx, dword [ecx + 0x10]
mov esi, dword [ecx + 0x14]
add ebx, dword [ecx + 0x30]
adc esi, dword [ecx + 0x34]
mov ecx, dword [esp + 0x104]
shl ecx, 4
movzx ecx, byte [ecx + 0x612a95]
add ebx, dword [esp + ecx*8 + 0x80]
adc esi, dword [esp + ecx*8 + 0x84]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], esi
mov ecx, esp
mov ebx, dword [ecx + 0x18]
mov esi, dword [ecx + 0x1c]
add ebx, dword [ecx + 0x38]
adc esi, dword [ecx + 0x3c]
mov ecx, dword [esp + 0x104]
shl ecx, 4
movzx ecx, byte [ecx + 0x612a97]
add ebx, dword [esp + ecx*8 + 0x80]
adc esi, dword [esp + ecx*8 + 0x84]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], esi
mov ecx, esp
mov ebx, dword [ecx + 0x60]
mov esi, dword [ecx + 0x64]
xor ebx, dword [ecx]
xor esi, dword [ecx + 4]
mov edx, ebx
mov eax, esi
mov esi, edx
mov ebx, eax
shrd esi, ebx, 0x10
shr ebx, 0x10
mov ecx, edx
xor edi, edi
shl ecx, 0x10
or esi, edi
or ebx, ecx
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], ebx
mov esi, esp
mov ecx, dword [esi + 0x68]
mov ebx, dword [esi + 0x6c]
xor ecx, dword [esi + 8]
xor ebx, dword [esi + 0xc]
mov edx, ecx
mov eax, ebx
mov edi, edx
mov esi, eax
shrd edi, esi, 0x10
shr esi, 0x10
mov ebx, edx
xor ecx, ecx
shl ebx, 0x10
or edi, ecx
or esi, ebx
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], esi
mov ecx, esp
mov ebx, dword [ecx + 0x70]
mov esi, dword [ecx + 0x74]
xor ebx, dword [ecx + 0x10]
xor esi, dword [ecx + 0x14]
mov edx, ebx
mov eax, esi
mov edi, edx
mov esi, eax
shrd edi, esi, 0x10
shr esi, 0x10
mov ebx, edx
xor ecx, ecx
shl ebx, 0x10
or edi, ecx
or esi, ebx
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], esi
mov ecx, esp
mov ebx, dword [ecx + 0x78]
mov esi, dword [ecx + 0x7c]
xor ebx, dword [ecx + 0x18]
xor esi, dword [ecx + 0x1c]
mov edx, ebx
mov eax, esi
mov esi, edx
mov ebx, eax
shrd esi, ebx, 0x10
shr ebx, 0x10
mov ecx, edx
xor edi, edi
shl ecx, 0x10
or esi, edi
or ebx, ecx
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], ebx
mov ecx, esp
mov ebx, dword [ecx + 0x40]
mov esi, dword [ecx + 0x44]
add ebx, dword [ecx + 0x60]
adc esi, dword [ecx + 0x64]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], esi
mov ecx, esp
mov ebx, dword [ecx + 0x48]
mov esi, dword [ecx + 0x4c]
add ebx, dword [ecx + 0x68]
adc esi, dword [ecx + 0x6c]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], esi
mov ecx, esp
mov ebx, dword [ecx + 0x50]
mov esi, dword [ecx + 0x54]
add ebx, dword [ecx + 0x70]
adc esi, dword [ecx + 0x74]
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], esi
mov ecx, esp
mov ebx, dword [ecx + 0x58]
mov esi, dword [ecx + 0x5c]
add ebx, dword [ecx + 0x78]
adc esi, dword [ecx + 0x7c]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], esi
mov ecx, esp
mov ebx, dword [ecx + 0x20]
mov esi, dword [ecx + 0x24]
xor ebx, dword [ecx + 0x40]
xor esi, dword [ecx + 0x44]
mov edx, ebx
mov eax, esi
mov ecx, edx
mov edi, eax
xor ebx, ebx
shr edi, 0x1f
mov esi, edx
mov ecx, eax
shld ecx, esi, 1
shl esi, 1
or edi, esi
or ebx, ecx
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], ebx
mov esi, esp
mov ebx, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
xor ebx, dword [esi + 0x48]
xor ecx, dword [esi + 0x4c]
mov edx, ebx
mov eax, ecx
mov ecx, edx
mov ebx, eax
xor edi, edi
shr ebx, 0x1f
mov esi, edx
mov ecx, eax
shld ecx, esi, 1
shl esi, 1
or ebx, esi
or edi, ecx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], edi
mov ecx, esp
mov ebx, dword [ecx + 0x30]
mov esi, dword [ecx + 0x34]
xor ebx, dword [ecx + 0x50]
xor esi, dword [ecx + 0x54]
mov edx, ebx
mov eax, esi
mov ecx, edx
mov ebx, eax
xor esi, esi
shr ebx, 0x1f
mov ecx, edx
mov edi, eax
shld edi, ecx, 1
shl ecx, 1
or ebx, ecx
or esi, edi
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], esi
mov ebx, esp
mov esi, dword [ebx + 0x38]
mov ecx, dword [ebx + 0x3c]
xor esi, dword [ebx + 0x58]
xor ecx, dword [ebx + 0x5c]
mov edx, esi
mov eax, ecx
mov ecx, edx
mov ebx, eax
xor ecx, ecx
shr ebx, 0x1f
mov esi, edx
mov edi, eax
shld edi, esi, 1
shl esi, 1
or ebx, esi
or ecx, edi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ecx
mov ecx, esp
mov ebx, dword [ecx]
mov esi, dword [ecx + 4]
add ebx, dword [ecx + 0x28]
adc esi, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x104]
shl ecx, 4
movzx ecx, byte [ecx + 0x612a98]
add ebx, dword [esp + ecx*8 + 0x80]
adc esi, dword [esp + ecx*8 + 0x84]
mov dword [esp], ebx
mov dword [esp + 4], esi
mov ecx, esp
mov ebx, dword [ecx + 8]
mov esi, dword [ecx + 0xc]
add ebx, dword [ecx + 0x30]
adc esi, dword [ecx + 0x34]
mov ecx, dword [esp + 0x104]
shl ecx, 4
movzx ecx, byte [ecx + 0x612a9a]
add ebx, dword [esp + ecx*8 + 0x80]
adc esi, dword [esp + ecx*8 + 0x84]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov ecx, esp
mov ebx, dword [ecx + 0x10]
mov esi, dword [ecx + 0x14]
add ebx, dword [ecx + 0x38]
adc esi, dword [ecx + 0x3c]
mov ecx, dword [esp + 0x104]
shl ecx, 4
movzx ecx, byte [ecx + 0x612a9c]
add ebx, dword [esp + ecx*8 + 0x80]
adc esi, dword [esp + ecx*8 + 0x84]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], esi
mov ecx, esp
mov ebx, dword [ecx + 0x18]
mov esi, dword [ecx + 0x1c]
add ebx, dword [ecx + 0x20]
adc esi, dword [ecx + 0x24]
mov ecx, dword [esp + 0x104]
shl ecx, 4
movzx ecx, byte [ecx + 0x612a9e]
add ebx, dword [esp + ecx*8 + 0x80]
adc esi, dword [esp + ecx*8 + 0x84]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], esi
mov ecx, esp
mov ebx, dword [ecx + 0x78]
mov esi, dword [ecx + 0x7c]
xor ebx, dword [ecx]
xor esi, dword [ecx + 4]
mov edx, ebx
mov eax, esi
xor ecx, ecx
xor esi, esi
mov ebx, eax
or ebx, esi
or ecx, edx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ecx
mov ecx, esp
mov esi, dword [ecx + 0x60]
mov ebx, dword [ecx + 0x64]
xor esi, dword [ecx + 8]
xor ebx, dword [ecx + 0xc]
mov edx, esi
mov eax, ebx
xor ecx, ecx
xor esi, esi
mov ebx, eax
or ebx, esi
or ecx, edx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ecx
mov ecx, esp
mov ebx, dword [ecx + 0x68]
mov esi, dword [ecx + 0x6c]
xor ebx, dword [ecx + 0x10]
xor esi, dword [ecx + 0x14]
mov edx, ebx
mov eax, esi
xor ecx, ecx
xor esi, esi
mov ebx, eax
or ebx, esi
or ecx, edx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ecx
mov ecx, esp
mov ebx, dword [ecx + 0x70]
mov esi, dword [ecx + 0x74]
xor ebx, dword [ecx + 0x18]
xor esi, dword [ecx + 0x1c]
mov edx, ebx
mov eax, esi
xor ecx, ecx
xor ebx, ebx
mov esi, eax
or esi, ebx
or ecx, edx
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], ecx
mov ecx, esp
mov ebx, dword [ecx + 0x50]
mov esi, dword [ecx + 0x54]
add ebx, dword [ecx + 0x78]
adc esi, dword [ecx + 0x7c]
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], esi
mov ebx, esp
mov esi, dword [ebx + 0x58]
mov ecx, dword [ebx + 0x5c]
add esi, dword [ebx + 0x60]
adc ecx, dword [ebx + 0x64]
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], ecx
mov ecx, esp
mov ebx, dword [ecx + 0x40]
mov esi, dword [ecx + 0x44]
add ebx, dword [ecx + 0x68]
adc esi, dword [ecx + 0x6c]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], esi
mov ebx, esp
mov ecx, dword [ebx + 0x48]
mov esi, dword [ebx + 0x4c]
add ecx, dword [ebx + 0x70]
adc esi, dword [ebx + 0x74]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], esi
mov esi, esp
mov ecx, dword [esi + 0x28]
mov ebx, dword [esi + 0x2c]
xor ecx, dword [esi + 0x50]
xor ebx, dword [esi + 0x54]
mov edx, ecx
mov eax, ebx
mov edi, edx
mov esi, eax
shrd edi, esi, 0x18
shr esi, 0x18
mov ebx, edx
xor ecx, ecx
shl ebx, 8
or edi, ecx
or esi, ebx
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], esi
mov esi, esp
mov ecx, dword [esi + 0x30]
mov ebx, dword [esi + 0x34]
xor ecx, dword [esi + 0x58]
xor ebx, dword [esi + 0x5c]
mov edx, ecx
mov eax, ebx
mov edi, edx
mov esi, eax
shrd edi, esi, 0x18
shr esi, 0x18
mov ebx, edx
xor ecx, ecx
shl ebx, 8
or edi, ecx
or esi, ebx
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], esi
mov esi, esp
mov ecx, dword [esi + 0x38]
mov ebx, dword [esi + 0x3c]
xor ecx, dword [esi + 0x40]
xor ebx, dword [esi + 0x44]
mov edx, ecx
mov eax, ebx
mov edi, edx
mov esi, eax
shrd edi, esi, 0x18
shr esi, 0x18
mov ebx, edx
xor ecx, ecx
shl ebx, 8
or edi, ecx
or esi, ebx
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], esi
mov esi, esp
mov ebx, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
xor ebx, dword [esi + 0x48]
xor ecx, dword [esi + 0x4c]
mov edx, ebx
mov eax, ecx
mov edi, edx
mov esi, eax
shrd edi, esi, 0x18
shr esi, 0x18
mov ebx, edx
xor ecx, ecx
shl ebx, 8
or edi, ecx
or esi, ebx
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], esi
mov ecx, esp
mov ebx, dword [ecx]
mov esi, dword [ecx + 4]
add ebx, dword [ecx + 0x28]
adc esi, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x104]
shl ecx, 4
movzx ecx, byte [ecx + 0x612a99]
add ebx, dword [esp + ecx*8 + 0x80]
adc esi, dword [esp + ecx*8 + 0x84]
mov dword [esp], ebx
mov dword [esp + 4], esi
mov ecx, esp
mov ebx, dword [ecx + 8]
mov esi, dword [ecx + 0xc]
add ebx, dword [ecx + 0x30]
adc esi, dword [ecx + 0x34]
mov ecx, dword [esp + 0x104]
shl ecx, 4
movzx ecx, byte [ecx + 0x612a9b]
add ebx, dword [esp + ecx*8 + 0x80]
adc esi, dword [esp + ecx*8 + 0x84]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov ecx, esp
mov ebx, dword [ecx + 0x10]
mov esi, dword [ecx + 0x14]
add ebx, dword [ecx + 0x38]
adc esi, dword [ecx + 0x3c]
mov ecx, dword [esp + 0x104]
shl ecx, 4
movzx ecx, byte [ecx + 0x612a9d]
add ebx, dword [esp + ecx*8 + 0x80]
adc esi, dword [esp + ecx*8 + 0x84]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], esi
mov ecx, esp
mov esi, dword [ecx + 0x18]
mov ebx, dword [ecx + 0x1c]
add esi, dword [ecx + 0x20]
adc ebx, dword [ecx + 0x24]
mov ecx, dword [esp + 0x104]
shl ecx, 4
movzx ecx, byte [ecx + 0x612a9f]
add esi, dword [esp + ecx*8 + 0x80]
adc ebx, dword [esp + ecx*8 + 0x84]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ebx
mov ecx, esp
mov ebx, dword [ecx + 0x78]
mov esi, dword [ecx + 0x7c]
xor ebx, dword [ecx]
xor esi, dword [ecx + 4]
mov edx, ebx
mov eax, esi
mov esi, edx
mov ebx, eax
shrd esi, ebx, 0x10
shr ebx, 0x10
mov ecx, edx
xor edi, edi
shl ecx, 0x10
or esi, edi
or ebx, ecx
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], ebx
mov ebx, esp
mov ecx, dword [ebx + 0x60]
mov esi, dword [ebx + 0x64]
xor ecx, dword [ebx + 8]
xor esi, dword [ebx + 0xc]
mov edx, ecx
mov eax, esi
mov edi, edx
mov esi, eax
shrd edi, esi, 0x10
shr esi, 0x10
mov ebx, edx
xor ecx, ecx
shl ebx, 0x10
or edi, ecx
or esi, ebx
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], esi
mov esi, esp
mov ebx, dword [esi + 0x68]
mov ecx, dword [esi + 0x6c]
xor ebx, dword [esi + 0x10]
xor ecx, dword [esi + 0x14]
mov edx, ebx
mov eax, ecx
mov esi, edx
mov ebx, eax
shrd esi, ebx, 0x10
shr ebx, 0x10
mov ecx, edx
xor edi, edi
shl ecx, 0x10
or esi, edi
or ebx, ecx
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], ebx
mov ecx, esp
mov ebx, dword [ecx + 0x70]
mov esi, dword [ecx + 0x74]
xor ebx, dword [ecx + 0x18]
xor esi, dword [ecx + 0x1c]
mov edx, ebx
mov eax, esi
mov esi, edx
mov ebx, eax
shrd esi, ebx, 0x10
shr ebx, 0x10
mov ecx, edx
xor edi, edi
shl ecx, 0x10
or esi, edi
or ebx, ecx
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], ebx
mov ecx, esp
mov ebx, dword [ecx + 0x50]
mov esi, dword [ecx + 0x54]
add ebx, dword [ecx + 0x78]
adc esi, dword [ecx + 0x7c]
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], esi
mov ebx, esp
mov esi, dword [ebx + 0x58]
mov ecx, dword [ebx + 0x5c]
add esi, dword [ebx + 0x60]
adc ecx, dword [ebx + 0x64]
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], ecx
mov ecx, esp
mov ebx, dword [ecx + 0x40]
mov esi, dword [ecx + 0x44]
add ebx, dword [ecx + 0x68]
adc esi, dword [ecx + 0x6c]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], esi
mov esi, esp
mov ebx, dword [esi + 0x48]
mov ecx, dword [esi + 0x4c]
add ebx, dword [esi + 0x70]
adc ecx, dword [esi + 0x74]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ecx
mov ecx, esp
mov esi, dword [ecx + 0x28]
mov ebx, dword [ecx + 0x2c]
xor esi, dword [ecx + 0x50]
xor ebx, dword [ecx + 0x54]
mov edx, esi
mov eax, ebx
mov ecx, edx
mov esi, eax
xor edi, edi
shr esi, 0x1f
mov ecx, edx
mov ebx, eax
shld ebx, ecx, 1
shl ecx, 1
or esi, ecx
or edi, ebx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
mov ebx, esp
mov ecx, dword [ebx + 0x30]
mov esi, dword [ebx + 0x34]
xor ecx, dword [ebx + 0x58]
xor esi, dword [ebx + 0x5c]
mov edx, ecx
mov eax, esi
mov ecx, edx
mov ecx, eax
xor ebx, ebx
shr ecx, 0x1f
mov esi, edx
mov edi, eax
shld edi, esi, 1
shl esi, 1
or ecx, esi
or ebx, edi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ebx
mov esi, esp
mov ebx, dword [esi + 0x38]
mov ecx, dword [esi + 0x3c]
xor ebx, dword [esi + 0x40]
xor ecx, dword [esi + 0x44]
mov edx, ebx
mov eax, ecx
mov ecx, edx
mov ecx, eax
xor ebx, ebx
shr ecx, 0x1f
mov esi, edx
mov edi, eax
shld edi, esi, 1
shl esi, 1
or ecx, esi
or ebx, edi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ebx
mov esi, esp
mov ebx, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
xor ebx, dword [esi + 0x48]
xor ecx, dword [esi + 0x4c]
mov edx, ebx
mov eax, ecx
mov ecx, edx
mov ecx, eax
xor ebx, ebx
shr ecx, 0x1f
mov esi, edx
mov edi, eax
shld edi, esi, 1
shl esi, 1
or ecx, esi
or ebx, edi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ebx
cmp dword [esp + 0x104], 0xb
jl 0x5e8818
mov edx, 0xffffffff
nop
add edx, 1
mov esi, esp
mov eax, dword [esp + 0x100]
mov ecx, dword [eax + edx*8]
mov eax, dword [esp + 0x100]
mov ebx, dword [eax + edx*8 + 4]
xor ecx, dword [esi + edx*8]
xor ebx, dword [esi + edx*8 + 4]
xor ecx, dword [esi + edx*8 + 0x40]
xor ebx, dword [esi + edx*8 + 0x44]
mov eax, dword [esp + 0x100]
mov dword [eax + edx*8], ecx
mov eax, dword [esp + 0x100]
mov dword [eax + edx*8 + 4], ebx
cmp edx, 7
jl 0x5e9280
lea esp, [esp + 0x108]
pop edi
pop esi
pop ebx
ret