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

Disassembly:
sub esp, 0x31c
mov eax, dword [0x42e024]
xor eax, esp
mov dword [esp + 0x314], eax
push ebx
push ebp
push esi
mov ebp, ecx
xor ebx, ebx
push edi
mov dword [esp + 0x58], ebp
lea edi, [edx + 2]
movzx eax, byte [edi - 2]
lea edi, [edi + 8]
cdq
mov ecx, eax
mov esi, edx
movzx eax, byte [edi - 9]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi - 8]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi - 7]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi - 6]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi - 5]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi - 4]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi - 3]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
mov dword [esp + ebx*8 + 0xa4], esi
mov dword [esp + ebx*8 + 0xa0], ecx
inc ebx
cmp ebx, 0x10
jl 0x40ab23
cmp ebx, 0x50
jge 0x40ac9c
mov ecx, 0x50
lea eax, [esp + ebx*8 + 0x90]
sub ecx, ebx
mov dword [esp + 0x14], ecx
mov ebp, dword [eax - 0x68]
xor esi, esi
mov ebx, dword [eax - 0x64]
mov ecx, ebp
mov edx, ebx
mov edi, ebp
shrd ecx, edx, 8
shl edi, 0x18
shr edx, 8
or esi, ecx
or edi, edx
mov dword [esp + 0x1c], esi
mov ecx, ebp
mov dword [esp + 0x18], edi
mov edx, ebx
mov edi, ebp
shrd ecx, edx, 1
shrd ebp, ebx, 7
shr edx, 1
xor esi, esi
or esi, ecx
shl edi, 0x1f
mov ecx, dword [esp + 0x1c]
or edi, edx
mov edx, dword [esp + 0x18]
xor ecx, esi
xor edx, edi
shr ebx, 7
xor edx, ebx
xor ecx, ebp
mov dword [esp + 0x1c], ecx
xor ebx, ebx
mov ecx, dword [eax]
xor esi, esi
mov dword [esp + 0x18], edx
mov ebp, ecx
mov edx, dword [eax + 4]
shrd ecx, edx, 0x13
shl ebp, 0xd
shr edx, 0x13
or ebx, ecx
mov ecx, dword [eax]
or ebp, edx
mov edx, dword [eax + 4]
mov edi, edx
shld edx, ecx, 3
shr edi, 0x1d
shl ecx, 3
or esi, edx
mov edx, dword [eax]
or edi, ecx
mov ecx, dword [eax + 4]
xor ebp, esi
shrd edx, ecx, 6
xor ebx, edi
shr ecx, 6
xor ebx, edx
mov edx, dword [esp + 0x18]
xor ebp, ecx
mov ecx, dword [esp + 0x1c]
add ecx, ebx
adc edx, ebp
add ecx, dword [eax - 0x70]
adc edx, dword [eax - 0x6c]
add ecx, dword [eax - 0x28]
mov dword [eax + 0x10], ecx
adc edx, dword [eax - 0x24]
lea eax, [eax + 8]
sub dword [esp + 0x14], 1
mov dword [eax + 0xc], edx
jne 0x40abd2
mov ebp, dword [esp + 0x58]
mov eax, dword [ebp + 0x10]
lea edi, [esp + 0xa0]
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
mov ecx, dword [ebp + 0x1c]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x30], ecx
mov ecx, dword [ebp + 0x24]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0x28]
mov dword [esp + 0x38], ecx
mov ecx, dword [ebp + 0x2c]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 0x30]
mov esi, eax
mov dword [esp + 0x40], ecx
mov ecx, dword [ebp + 0x34]
mov edx, ecx
mov dword [esp + 0x80], eax
mov eax, dword [ebp + 0x38]
mov dword [esp + 0x84], ecx
mov ecx, dword [ebp + 0x3c]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x4c], eax
mov eax, dword [ebp + 0x40]
mov dword [esp + 0x50], ecx
mov ecx, dword [ebp + 0x44]
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], ecx
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 0x48]
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 0x4c]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], edx
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], 0x42a738
jmp 0x40ad89
mov edx, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
mov eax, esi
mov ecx, edx
shld ecx, eax, 0x17
mov ebx, edx
shl esi, 0xe
shl eax, 0x17
xor edi, edi
or edi, ecx
shr ebx, 9
mov ecx, dword [esp + 0x48]
or ebx, eax
mov eax, dword [esp + 0x44]
xor edx, edx
shrd eax, ecx, 0x12
or edx, eax
shr ecx, 0x12
or esi, ecx
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
xor edi, esi
mov esi, eax
xor ebx, edx
shrd eax, ecx, 0xe
shl esi, 0x12
xor edx, edx
or edx, eax
shr ecx, 0xe
mov eax, dword [esp + 0x14]
or esi, ecx
xor eax, dword [esp + 0x50]
xor edi, esi
and eax, dword [esp + 0x48]
xor ebx, edx
xor eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x54]
xor ecx, dword [esp + 0x4c]
and ecx, dword [esp + 0x44]
xor ecx, dword [esp + 0x54]
add ebx, ecx
mov ecx, ebp
adc edi, eax
mov eax, dword [esp + 0x28]
add ebx, dword [eax]
adc edi, dword [eax + 4]
add ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
adc edi, dword [esp + 0x1c]
add ebx, dword [eax]
adc edi, dword [eax + 4]
add dword [esp + 0x3c], ebx
mov eax, dword [esp + 0x20]
mov edx, eax
adc dword [esp + 0x40], edi
xor esi, esi
shrd eax, ecx, 0x1c
shl edx, 4
or esi, eax
shr ecx, 0x1c
mov eax, dword [esp + 0x20]
or edx, ecx
mov dword [esp + 0x18], esi
mov ecx, ebp
shld ecx, eax, 0x1e
mov dword [esp + 0x1c], edx
mov esi, ebp
shr esi, 2
xor edx, edx
shl eax, 0x1e
or edx, ecx
xor dword [esp + 0x1c], edx
or esi, eax
xor dword [esp + 0x18], esi
mov ecx, ebp
mov eax, dword [esp + 0x20]
mov esi, ebp
shld ecx, eax, 0x19
shr esi, 7
xor edx, edx
shl eax, 0x19
or esi, eax
or edx, ecx
xor dword [esp + 0x18], esi
xor dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x2c]
mov esi, ecx
and ecx, dword [esp + 0x20]
or esi, dword [esp + 0x20]
and esi, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
or esi, ecx
mov ecx, dword [esp + 0x18]
mov edx, eax
and eax, ebp
or edx, ebp
and edx, dword [esp + 0x38]
or edx, eax
mov eax, dword [esp + 0x1c]
add ecx, esi
adc eax, edx
add ecx, ebx
mov dword [esp + 0x18], ecx
adc eax, edi
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x1c], eax
mov ebx, ecx
mov eax, dword [esp + 0x3c]
xor edi, edi
shld ecx, eax, 0x17
add dword [esp + 0x24], 8
xor edx, edx
or edi, ecx
shl eax, 0x17
mov ecx, dword [esp + 0x40]
add dword [esp + 0x28], 8
shr ebx, 9
or ebx, eax
mov eax, dword [esp + 0x3c]
mov esi, eax
shrd eax, ecx, 0x12
shl esi, 0xe
or edx, eax
shr ecx, 0x12
mov eax, dword [esp + 0x3c]
or esi, ecx
mov ecx, dword [esp + 0x40]
xor edi, esi
mov esi, eax
xor ebx, edx
shrd eax, ecx, 0xe
xor edx, edx
shl esi, 0x12
or edx, eax
shr ecx, 0xe
mov eax, dword [esp + 0x50]
or esi, ecx
xor eax, dword [esp + 0x48]
xor edi, esi
and eax, dword [esp + 0x40]
xor ebx, edx
xor eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
xor ecx, dword [esp + 0x44]
and ecx, dword [esp + 0x3c]
xor ecx, dword [esp + 0x4c]
add ebx, ecx
mov ecx, dword [esp + 0x1c]
adc edi, eax
mov eax, dword [esp + 0x28]
add ebx, dword [eax]
adc edi, dword [eax + 4]
add ebx, dword [esp + 0x54]
mov eax, dword [esp + 0x24]
adc edi, dword [esp + 0x14]
add ebx, dword [eax]
adc edi, dword [eax + 4]
add dword [esp + 0x34], ebx
mov eax, dword [esp + 0x18]
mov edx, eax
adc dword [esp + 0x38], edi
xor esi, esi
shl edx, 4
shrd eax, ecx, 0x1c
or esi, eax
shr ecx, 0x1c
or edx, ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x54], esi
mov esi, ecx
shld ecx, eax, 0x1e
shr esi, 2
shl eax, 0x1e
or esi, eax
mov dword [esp + 0x14], edx
xor dword [esp + 0x54], esi
xor edx, edx
mov eax, dword [esp + 0x18]
or edx, ecx
xor dword [esp + 0x14], edx
xor edx, edx
mov ecx, dword [esp + 0x1c]
mov esi, ecx
shld ecx, eax, 0x19
shr esi, 7
or edx, ecx
shl eax, 0x19
xor dword [esp + 0x14], edx
or esi, eax
xor dword [esp + 0x54], esi
mov ecx, dword [esp + 0x18]
mov esi, ecx
and ecx, dword [esp + 0x20]
or esi, dword [esp + 0x20]
and esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
or esi, ecx
mov ecx, dword [esp + 0x54]
mov edx, eax
and eax, ebp
or edx, ebp
and edx, dword [esp + 0x30]
or edx, eax
mov eax, dword [esp + 0x14]
add ecx, esi
adc eax, edx
add ecx, ebx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x38]
adc eax, edi
mov dword [esp + 0x14], eax
mov ebx, ecx
mov eax, dword [esp + 0x34]
xor edi, edi
shld ecx, eax, 0x17
add dword [esp + 0x24], 8
xor edx, edx
add dword [esp + 0x28], 8
or edi, ecx
mov ecx, dword [esp + 0x38]
shl eax, 0x17
shr ebx, 9
or ebx, eax
mov eax, dword [esp + 0x34]
mov esi, eax
shrd eax, ecx, 0x12
shl esi, 0xe
shr ecx, 0x12
or edx, eax
mov eax, dword [esp + 0x34]
or esi, ecx
mov ecx, dword [esp + 0x38]
xor edi, esi
xor ebx, edx
mov esi, eax
shrd eax, ecx, 0xe
xor edx, edx
shl esi, 0x12
shr ecx, 0xe
or edx, eax
or esi, ecx
xor ebx, edx
mov ecx, dword [esp + 0x44]
xor edi, esi
xor ecx, dword [esp + 0x3c]
and ecx, dword [esp + 0x34]
xor ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
xor eax, dword [esp + 0x40]
and eax, dword [esp + 0x38]
xor eax, dword [esp + 0x48]
add ebx, ecx
mov ecx, dword [esp + 0x14]
adc edi, eax
mov eax, dword [esp + 0x28]
add ebx, dword [eax]
adc edi, dword [eax + 4]
add ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x24]
adc edi, dword [esp + 0x50]
add ebx, dword [eax]
adc edi, dword [eax + 4]
add dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x54]
mov edx, eax
adc dword [esp + 0x30], edi
xor esi, esi
shrd eax, ecx, 0x1c
shl edx, 4
or esi, eax
shr ecx, 0x1c
mov eax, dword [esp + 0x54]
or edx, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x4c], esi
mov esi, ecx
shld ecx, eax, 0x1e
shr esi, 2
shl eax, 0x1e
or esi, eax
mov dword [esp + 0x50], edx
xor dword [esp + 0x4c], esi
xor edx, edx
mov eax, dword [esp + 0x54]
or edx, ecx
xor dword [esp + 0x50], edx
xor edx, edx
mov ecx, dword [esp + 0x14]
mov esi, ecx
shld ecx, eax, 0x19
shr esi, 7
shl eax, 0x19
or edx, ecx
xor dword [esp + 0x50], edx
or esi, eax
xor dword [esp + 0x4c], esi
mov ecx, dword [esp + 0x18]
mov esi, ecx
or esi, dword [esp + 0x54]
and ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x1c]
mov edx, eax
and eax, dword [esp + 0x14]
or edx, dword [esp + 0x14]
and esi, dword [esp + 0x20]
and edx, ebp
or esi, ecx
or edx, eax
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
add ecx, esi
adc eax, edx
add ecx, ebx
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x30]
adc eax, edi
add dword [esp + 0x24], 8
mov ebx, ecx
add dword [esp + 0x28], 8
xor edi, edi
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x2c]
shld ecx, eax, 0x17
shr ebx, 9
shl eax, 0x17
or edi, ecx
or ebx, eax
mov eax, dword [esp + 0x2c]
xor edx, edx
mov ecx, dword [esp + 0x30]
mov esi, eax
shrd eax, ecx, 0x12
shl esi, 0xe
or edx, eax
shr ecx, 0x12
or esi, ecx
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
xor edi, esi
mov esi, eax
xor ebx, edx
shrd eax, ecx, 0xe
shl esi, 0x12
xor edx, edx
or edx, eax
shr ecx, 0xe
mov eax, dword [esp + 0x40]
or esi, ecx
xor eax, dword [esp + 0x38]
xor edi, esi
and eax, dword [esp + 0x30]
xor ebx, edx
xor eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
xor ecx, dword [esp + 0x34]
and ecx, dword [esp + 0x2c]
xor ecx, dword [esp + 0x3c]
add ebx, ecx
mov ecx, dword [esp + 0x50]
adc edi, eax
mov eax, dword [esp + 0x28]
add ebx, dword [eax]
adc edi, dword [eax + 4]
add ebx, dword [esp + 0x44]
mov eax, dword [esp + 0x24]
adc edi, dword [esp + 0x48]
add ebx, dword [eax]
adc edi, dword [eax + 4]
add dword [esp + 0x20], ebx
mov eax, dword [esp + 0x4c]
mov edx, eax
adc ebp, edi
xor esi, esi
shrd eax, ecx, 0x1c
shl edx, 4
or esi, eax
shr ecx, 0x1c
mov eax, dword [esp + 0x4c]
or edx, ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x44], esi
mov esi, ecx
shld ecx, eax, 0x1e
shr esi, 2
shl eax, 0x1e
or esi, eax
mov dword [esp + 0x48], edx
xor dword [esp + 0x44], esi
xor edx, edx
mov eax, dword [esp + 0x4c]
or edx, ecx
mov ecx, dword [esp + 0x50]
mov esi, ecx
xor dword [esp + 0x48], edx
xor edx, edx
shld ecx, eax, 0x19
shr esi, 7
shl eax, 0x19
or edx, ecx
mov ecx, dword [esp + 0x54]
or esi, eax
xor dword [esp + 0x44], esi
mov esi, ecx
xor dword [esp + 0x48], edx
or esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x14]
and ecx, dword [esp + 0x4c]
mov edx, eax
and eax, dword [esp + 0x50]
and esi, dword [esp + 0x18]
or edx, dword [esp + 0x50]
or esi, ecx
and edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x44]
or edx, eax
mov eax, dword [esp + 0x48]
add ecx, esi
adc eax, edx
add ecx, ebx
mov dword [esp + 0x44], ecx
mov ebx, ebp
adc eax, edi
mov ecx, ebp
mov dword [esp + 0x48], eax
xor edi, edi
mov eax, dword [esp + 0x20]
xor edx, edx
shld ecx, eax, 0x17
add dword [esp + 0x24], 8
or edi, ecx
shl eax, 0x17
add dword [esp + 0x28], 8
mov ecx, ebp
shr ebx, 9
or ebx, eax
mov eax, dword [esp + 0x20]
mov esi, eax
shrd eax, ecx, 0x12
shl esi, 0xe
shr ecx, 0x12
or edx, eax
mov eax, dword [esp + 0x20]
or esi, ecx
xor edi, esi
xor ebx, edx
mov esi, eax
xor edx, edx
shl esi, 0x12
mov ecx, ebp
shrd eax, ecx, 0xe
shr ecx, 0xe
or edx, eax
mov eax, dword [esp + 0x38]
or esi, ecx
xor eax, dword [esp + 0x30]
xor edi, esi
mov ecx, dword [esp + 0x34]
and eax, ebp
xor ecx, dword [esp + 0x2c]
xor ebx, edx
and ecx, dword [esp + 0x20]
xor ecx, dword [esp + 0x34]
xor eax, dword [esp + 0x38]
add ebx, ecx
mov ecx, dword [esp + 0x48]
adc edi, eax
mov eax, dword [esp + 0x28]
add ebx, dword [eax]
adc edi, dword [eax + 4]
add ebx, dword [esp + 0x3c]
mov eax, dword [esp + 0x24]
adc edi, dword [esp + 0x40]
add ebx, dword [eax]
adc edi, dword [eax + 4]
add dword [esp + 0x18], ebx
mov eax, dword [esp + 0x44]
mov edx, eax
adc dword [esp + 0x1c], edi
xor esi, esi
shrd eax, ecx, 0x1c
shl edx, 4
shr ecx, 0x1c
or esi, eax
or edx, ecx
mov dword [esp + 0x3c], esi
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x44]
mov esi, ecx
shld ecx, eax, 0x1e
shr esi, 2
xor edx, edx
or edx, ecx
shl eax, 0x1e
xor dword [esp + 0x40], edx
or esi, eax
xor dword [esp + 0x3c], esi
xor edx, edx
mov ecx, dword [esp + 0x48]
mov esi, ecx
mov eax, dword [esp + 0x44]
shld ecx, eax, 0x19
shr esi, 7
or edx, ecx
shl eax, 0x19
xor dword [esp + 0x40], edx
or esi, eax
xor dword [esp + 0x3c], esi
mov ecx, dword [esp + 0x4c]
mov esi, ecx
and ecx, dword [esp + 0x44]
or esi, dword [esp + 0x44]
and esi, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
or esi, ecx
mov ecx, dword [esp + 0x3c]
mov edx, eax
and eax, dword [esp + 0x48]
or edx, dword [esp + 0x48]
and edx, dword [esp + 0x14]
or edx, eax
mov eax, dword [esp + 0x40]
add ecx, esi
adc eax, edx
add ecx, ebx
mov dword [esp + 0x3c], ecx
adc eax, edi
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x40], eax
mov ebx, ecx
mov eax, dword [esp + 0x18]
xor edi, edi
shld ecx, eax, 0x17
add dword [esp + 0x24], 8
xor edx, edx
or edi, ecx
shl eax, 0x17
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x28], 8
shr ebx, 9
or ebx, eax
mov eax, dword [esp + 0x18]
mov esi, eax
shrd eax, ecx, 0x12
shl esi, 0xe
shr ecx, 0x12
or edx, eax
mov eax, dword [esp + 0x18]
or esi, ecx
mov ecx, dword [esp + 0x1c]
xor edi, esi
mov esi, eax
xor ebx, edx
shrd eax, ecx, 0xe
shl esi, 0x12
xor edx, edx
shr ecx, 0xe
or edx, eax
mov eax, dword [esp + 0x30]
or esi, ecx
mov ecx, dword [esp + 0x2c]
xor eax, ebp
xor ecx, dword [esp + 0x20]
xor ebx, edx
and ecx, dword [esp + 0x18]
xor edi, esi
and eax, dword [esp + 0x1c]
xor ecx, dword [esp + 0x2c]
xor eax, dword [esp + 0x30]
add ebx, ecx
mov ecx, dword [esp + 0x40]
adc edi, eax
mov eax, dword [esp + 0x28]
add ebx, dword [eax]
adc edi, dword [eax + 4]
add ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
adc edi, dword [esp + 0x38]
add ebx, dword [eax]
adc edi, dword [eax + 4]
add dword [esp + 0x54], ebx
mov eax, dword [esp + 0x3c]
mov edx, eax
adc dword [esp + 0x14], edi
xor esi, esi
shrd eax, ecx, 0x1c
shl edx, 4
or esi, eax
shr ecx, 0x1c
mov eax, dword [esp + 0x3c]
or edx, ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x34], esi
mov esi, ecx
shld ecx, eax, 0x1e
shr esi, 2
shl eax, 0x1e
or esi, eax
mov dword [esp + 0x38], edx
xor dword [esp + 0x34], esi
xor edx, edx
mov eax, dword [esp + 0x3c]
or edx, ecx
xor dword [esp + 0x38], edx
xor edx, edx
mov ecx, dword [esp + 0x40]
mov esi, ecx
shld ecx, eax, 0x19
shr esi, 7
shl eax, 0x19
or edx, ecx
xor dword [esp + 0x38], edx
or esi, eax
xor dword [esp + 0x34], esi
mov ecx, dword [esp + 0x44]
mov esi, ecx
or esi, dword [esp + 0x3c]
and ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x48]
mov edx, eax
and eax, dword [esp + 0x40]
or edx, dword [esp + 0x40]
and esi, dword [esp + 0x4c]
and edx, dword [esp + 0x50]
or esi, ecx
mov ecx, dword [esp + 0x34]
or edx, eax
mov eax, dword [esp + 0x38]
add ecx, esi
adc eax, edx
add ecx, ebx
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x14]
adc eax, edi
add dword [esp + 0x24], 8
mov ebx, ecx
add dword [esp + 0x28], 8
xor edi, edi
mov dword [esp + 0x38], eax
xor edx, edx
mov eax, dword [esp + 0x54]
shld ecx, eax, 0x17
shr ebx, 9
shl eax, 0x17
or edi, ecx
or ebx, eax
mov eax, dword [esp + 0x54]
mov esi, eax
shl esi, 0xe
mov ecx, dword [esp + 0x14]
shrd eax, ecx, 0x12
or edx, eax
shr ecx, 0x12
or esi, ecx
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x14]
xor edi, esi
mov esi, eax
xor ebx, edx
shrd eax, ecx, 0xe
shl esi, 0x12
xor edx, edx
or edx, eax
shr ecx, 0xe
or esi, ecx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
xor eax, ebp
xor ecx, dword [esp + 0x20]
xor edi, esi
and eax, dword [esp + 0x14]
xor ebx, edx
and ecx, dword [esp + 0x54]
xor eax, ebp
xor ecx, dword [esp + 0x20]
add ebx, ecx
mov ecx, dword [esp + 0x38]
adc edi, eax
mov eax, dword [esp + 0x28]
add ebx, dword [eax]
adc edi, dword [eax + 4]
add ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
adc edi, dword [esp + 0x30]
add ebx, dword [eax]
adc edi, dword [eax + 4]
add dword [esp + 0x4c], ebx
mov eax, dword [esp + 0x34]
mov edx, eax
adc dword [esp + 0x50], edi
xor esi, esi
shrd eax, ecx, 0x1c
shl edx, 4
or esi, eax
shr ecx, 0x1c
mov eax, dword [esp + 0x34]
or edx, ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x2c], esi
mov esi, ecx
shld ecx, eax, 0x1e
mov dword [esp + 0x30], edx
xor edx, edx
shr esi, 2
or edx, ecx
xor dword [esp + 0x30], edx
xor edx, edx
mov ecx, dword [esp + 0x38]
shl eax, 0x1e
or esi, eax
mov eax, dword [esp + 0x34]
xor dword [esp + 0x2c], esi
mov esi, ecx
shld ecx, eax, 0x19
shr esi, 7
or edx, ecx
shl eax, 0x19
xor dword [esp + 0x30], edx
or esi, eax
xor dword [esp + 0x2c], esi
mov ecx, dword [esp + 0x3c]
mov esi, ecx
mov eax, dword [esp + 0x40]
mov edx, eax
or esi, dword [esp + 0x34]
or edx, dword [esp + 0x38]
and esi, dword [esp + 0x44]
and edx, dword [esp + 0x48]
and ecx, dword [esp + 0x34]
and eax, dword [esp + 0x38]
or esi, ecx
or edx, eax
mov ecx, dword [esp + 0x2c]
add ecx, esi
mov eax, dword [esp + 0x30]
adc eax, edx
add ecx, ebx
mov dword [esp + 0x2c], ecx
adc eax, edi
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x30], eax
mov ebx, ecx
mov eax, dword [esp + 0x4c]
xor edi, edi
shld ecx, eax, 0x17
add dword [esp + 0x24], 8
xor edx, edx
or edi, ecx
shl eax, 0x17
mov ecx, dword [esp + 0x50]
add dword [esp + 0x28], 8
shr ebx, 9
or ebx, eax
mov eax, dword [esp + 0x4c]
mov esi, eax
shrd eax, ecx, 0x12
shl esi, 0xe
or edx, eax
shr ecx, 0x12
mov eax, dword [esp + 0x4c]
or esi, ecx
mov ecx, dword [esp + 0x50]
xor edi, esi
mov esi, eax
xor ebx, edx
shrd eax, ecx, 0xe
xor edx, edx
shl esi, 0x12
or edx, eax
shr ecx, 0xe
mov eax, dword [esp + 0x1c]
or esi, ecx
xor eax, dword [esp + 0x14]
xor edi, esi
and eax, dword [esp + 0x50]
xor ebx, edx
xor eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
xor ecx, dword [esp + 0x54]
and ecx, dword [esp + 0x4c]
xor ecx, dword [esp + 0x18]
add ebx, ecx
mov ecx, dword [esp + 0x30]
adc edi, eax
mov eax, dword [esp + 0x28]
add ebx, dword [eax]
adc edi, dword [eax + 4]
add ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
adc edi, ebp
add ebx, dword [eax]
adc edi, dword [eax + 4]
add dword [esp + 0x44], ebx
mov eax, dword [esp + 0x2c]
mov ebp, eax
adc dword [esp + 0x48], edi
xor edx, edx
shrd eax, ecx, 0x1c
shl ebp, 4
shr ecx, 0x1c
or edx, eax
mov eax, dword [esp + 0x2c]
or ebp, ecx
mov ecx, dword [esp + 0x30]
mov esi, ecx
shld ecx, eax, 0x1e
mov dword [esp + 0x20], edx
xor edx, edx
shr esi, 2
shl eax, 0x1e
or esi, eax
xor dword [esp + 0x20], esi
or edx, ecx
mov ecx, dword [esp + 0x30]
xor ebp, edx
mov eax, dword [esp + 0x2c]
mov esi, ecx
shld ecx, eax, 0x19
shr esi, 7
xor edx, edx
shl eax, 0x19
or edx, ecx
mov ecx, dword [esp + 0x34]
or esi, eax
xor dword [esp + 0x20], esi
xor ebp, edx
mov eax, dword [esp + 0x38]
mov esi, ecx
or esi, dword [esp + 0x2c]
mov edx, eax
or edx, dword [esp + 0x30]
and ecx, dword [esp + 0x2c]
and esi, dword [esp + 0x3c]
and eax, dword [esp + 0x30]
or esi, ecx
and edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x20]
or edx, eax
mov eax, dword [esp + 0x24]
add ecx, esi
adc ebp, edx
add ecx, ebx
mov dword [esp + 0x20], ecx
adc ebp, edi
add dword [esp + 0x28], 8
add eax, 8
mov dword [esp + 0x24], eax
cmp eax, 0x42a9b8
jl 0x40ad81
mov eax, dword [esp + 0x60]
add eax, ecx
mov ecx, dword [esp + 0x64]
pop edi
adc ecx, ebp
mov ebp, dword [esp + 0x54]
pop esi
mov dword [ebp + 0x10], eax
mov eax, dword [esp + 0x60]
add eax, dword [esp + 0x24]
mov dword [ebp + 0x14], ecx
mov ecx, dword [esp + 0x64]
adc ecx, dword [esp + 0x28]
mov dword [ebp + 0x18], eax
mov eax, dword [esp + 0x68]
add eax, dword [esp + 0x2c]
mov dword [ebp + 0x1c], ecx
mov ecx, dword [esp + 0x6c]
adc ecx, dword [esp + 0x30]
mov dword [ebp + 0x20], eax
mov eax, dword [esp + 0x70]
add eax, dword [esp + 0x34]
mov dword [ebp + 0x24], ecx
mov ecx, dword [esp + 0x74]
adc ecx, dword [esp + 0x38]
mov dword [ebp + 0x28], eax
mov eax, dword [esp + 0x78]
add eax, dword [esp + 0x3c]
mov dword [ebp + 0x2c], ecx
mov ecx, dword [esp + 0x7c]
adc ecx, dword [esp + 0x40]
mov dword [ebp + 0x30], eax
mov eax, dword [esp + 0x80]
add eax, dword [esp + 0x44]
mov dword [ebp + 0x34], ecx
mov ecx, dword [esp + 0x84]
adc ecx, dword [esp + 0x48]
mov dword [ebp + 0x38], eax
mov eax, dword [esp + 0x88]
add eax, dword [esp + 0x4c]
mov dword [ebp + 0x3c], ecx
mov ecx, dword [esp + 0x8c]
adc ecx, dword [esp + 0xc]
mov dword [ebp + 0x40], eax
mov eax, dword [esp + 0x90]
add eax, dword [esp + 0x10]
mov dword [ebp + 0x44], ecx
mov ecx, dword [esp + 0x94]
adc ecx, dword [esp + 0x14]
mov dword [ebp + 0x4c], ecx
mov ecx, dword [esp + 0x31c]
mov dword [ebp + 0x48], eax
pop ebp
pop ebx
xor ecx, esp
call fcn.0040cad5
add esp, 0x31c
ret