Function at 0x4151d0
Capabilities:
Encode data using xor
Hash data using sha256

Disassembly:
sub esp, 0x134
mov eax, ecx
xor edx, edx
push ebx
push ebp
push esi
mov ecx, dword [eax]
mov ebx, ecx
mov ebp, dword [eax + 4]
mov esi, dword [esp + 0x144]
mov dword [esp + 0x38], ecx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x14], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 0x14]
push edi
mov edi, dword [eax + 8]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x40], eax
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x2c], edi
mov dword [esp + 0x34], ecx
mov dword [esp + 0x28], eax
mov ecx, dword [esi + edx*4]
call fcn.00415120
mov dword [esp + edx*4 + 0x44], eax
inc edx
cmp edx, 0x10
jl 0x415226
push dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x34]
call fcn.00415130
mov esi, dword [esp + 0x2c]
mov edx, ebp
add eax, dword [esp + 0x48]
add esi, 0x428a2f98
add esi, eax
mov ecx, ebx
add dword [esp + 0x1c], esi
push edi
call fcn.00415180
push dword [esp + 0x38]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
lea edi, [esi + eax]
call fcn.00415130
mov esi, dword [esp + 0x40]
mov edx, ebx
add eax, dword [esp + 0x54]
add esi, 0x71374491
add esi, eax
mov ecx, edi
add dword [esp + 0x38], esi
push ebp
call fcn.00415180
push dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x40]
lea ebp, [esi + eax]
call fcn.00415130
mov edx, dword [esp + 0x44]
mov ecx, ebp
mov esi, dword [esp + 0x60]
add edx, 0xb5c0fbcf
add esi, edx
mov edx, edi
add esi, eax
add dword [esp + 0x24], esi
push ebx
call fcn.00415180
push dword [esp + 0x30]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x2c]
lea ebx, [esi + eax]
mov dword [esp + 0x50], ebx
call fcn.00415130
mov edx, dword [esp + 0x3c]
mov ecx, ebx
mov esi, dword [esp + 0x6c]
add edx, 0xe9b5dba5
add esi, edx
mov edx, ebp
add esi, eax
add dword [esp + 0x30], esi
push edi
call fcn.00415180
push dword [esp + 0x4c]
mov edx, dword [esp + 0x34]
add eax, esi
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x48], eax
call fcn.00415130
mov esi, dword [esp + 0x3c]
mov edx, ebx
add eax, dword [esp + 0x78]
add esi, 0x3956c25b
mov ecx, dword [esp + 0x48]
add esi, eax
push ebp
add edi, esi
call fcn.00415180
push dword [esp + 0x38]
mov edx, dword [esp + 0x40]
add eax, esi
mov ecx, edi
mov dword [esp + 0x48], eax
call fcn.00415130
add eax, dword [esp + 0x84]
mov esi, dword [esp + 0x58]
mov edx, dword [esp + 0x50]
add esi, 0x59f111f1
mov ecx, dword [esp + 0x48]
add esi, eax
add ebp, esi
push ebx
mov dword [esp + 0x60], ebp
call fcn.00415180
push dword [esp + 0x44]
mov edx, edi
mov ecx, ebp
lea ebx, [esi + eax]
call fcn.00415130
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x44]
add ecx, 0x923f82a4
push dword [esp + 0x58]
mov edx, dword [esp + 0x54]
add esi, ecx
add esi, eax
mov ecx, ebx
add dword [esp + 0x6c], esi
call fcn.00415180
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
push edi
lea ebp, [esi + eax]
call fcn.00415130
mov ecx, dword [esp + 0x9c]
mov edx, ebx
mov esi, dword [esp + 0x50]
add ecx, 0xab1c5ed5
push dword [esp + 0x58]
add esi, ecx
mov ecx, ebp
add esi, eax
add dword [esp + 0x64], esi
call fcn.00415180
mov edx, dword [esp + 0x74]
add esp, 0x40
mov ecx, dword [esp + 0x24]
add eax, esi
mov dword [esp + 0x20], eax
push dword [esp + 0x30]
call fcn.00415130
mov esi, dword [esp + 0x68]
add eax, 0xd807aa98
add esi, edi
mov edx, ebp
mov edi, dword [esp + 0x24]
add esi, eax
add dword [esp + 0x20], esi
mov ecx, edi
push ebx
call fcn.00415180
push dword [esp + 0x3c]
mov edx, dword [esp + 0x30]
add eax, esi
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x34], eax
call fcn.00415130
mov esi, dword [esp + 0x3c]
mov edx, edi
add eax, dword [esp + 0x74]
add esi, 0x12835b01
mov ecx, dword [esp + 0x34]
add esi, eax
push ebp
add ebx, esi
call fcn.00415180
push dword [esp + 0x34]
mov edx, dword [esp + 0x30]
add eax, esi
mov ecx, ebx
mov dword [esp + 0x28], eax
call fcn.00415130
mov esi, dword [esp + 0x48]
add eax, dword [esp + 0x80]
add esi, 0x243185be
add esi, eax
mov edx, dword [esp + 0x3c]
add ebp, esi
mov ecx, dword [esp + 0x28]
push edi
call fcn.00415180
push dword [esp + 0x34]
add eax, esi
mov edx, ebx
mov ecx, ebp
mov dword [esp + 0x2c], eax
call fcn.00415130
mov esi, dword [esp + 0x40]
add eax, dword [esp + 0x8c]
add esi, 0x550c7dc3
push dword [esp + 0x44]
mov edx, dword [esp + 0x34]
add esi, eax
mov ecx, dword [esp + 0x30]
add edi, esi
call fcn.00415180
add eax, esi
mov edx, ebp
push ebx
mov ecx, edi
mov dword [esp + 0x48], eax
call fcn.00415130
mov esi, dword [esp + 0x40]
add eax, dword [esp + 0x98]
add esi, 0x72be5d74
push dword [esp + 0x38]
mov edx, dword [esp + 0x38]
add esi, eax
mov ecx, dword [esp + 0x4c]
add dword [esp + 0x50], esi
call fcn.00415180
mov ecx, dword [esp + 0x50]
add eax, esi
push ebp
mov edx, edi
mov dword [esp + 0x4c], eax
call fcn.00415130
mov esi, dword [esp + 0xa4]
add eax, 0x80deb1fe
push dword [esp + 0x3c]
mov edx, dword [esp + 0x54]
add esi, ebx
mov ecx, dword [esp + 0x50]
add esi, eax
add dword [esp + 0x44], esi
call fcn.00415180
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x44]
push edi
lea ebx, [esi + eax]
mov dword [esp + 0x50], ebx
call fcn.00415130
mov esi, dword [esp + 0xb0]
add eax, 0x9bdc06a7
mov edx, dword [esp + 0x54]
add esi, ebp
mov ebp, dword [esp + 0x58]
add esi, eax
add dword [esp + 0x44], esi
mov ecx, ebx
push ebp
call fcn.00415180
push dword [esp + 0x60]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
lea ebx, [esi + eax]
mov dword [esp + 0x68], ebx
call fcn.00415130
mov esi, dword [esp + 0xbc]
add eax, 0xc19bf174
push dword [esp + 0x5c]
mov edx, dword [esp + 0x5c]
add esi, edi
add esi, eax
mov ecx, ebx
add ebp, esi
mov dword [esp + 0x64], ebp
call fcn.00415180
mov ecx, dword [esp + 0x78]
add eax, esi
mov edx, 0x18
mov dword [esp + 0x58], eax
add esp, 0x40
sub edx, ecx
mov dword [esp + 0x30], edx
lea ebp, [esp + ecx*4 + 0x3c]
nop dword [eax]
mov esi, dword [ebp - 0x34]
mov edx, 0x12
mov ebx, dword [ebp]
mov ecx, esi
call fcn.00415110
mov edx, 7
mov ecx, esi
mov edi, eax
call fcn.00415110
xor edi, eax
shr esi, 3
mov edx, 0x13
mov ecx, ebx
xor edi, esi
call fcn.00415110
mov edx, 0x11
mov ecx, ebx
mov esi, eax
call fcn.00415110
xor esi, eax
shr ebx, 0xa
xor esi, ebx
lea ebp, [ebp + 4]
add edi, esi
add edi, dword [ebp - 0x3c]
add edi, dword [ebp - 0x18]
sub dword [esp + 0x30], 1
mov dword [ebp + 4], edi
jne 0x4155d0
push dword [esp + 0x14]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
call fcn.00415130
mov ebx, dword [esp + 0x24]
mov esi, eax
add esi, dword [esp + 0x88]
add ebx, 0xe49b69c1
add esi, dword [esp + 0x2c]
push dword [esp + 0x20]
mov edx, dword [esp + 0x34]
add ebx, esi
mov ecx, dword [esp + 0x20]
call fcn.00415180
push dword [esp + 0x18]
mov edx, dword [esp + 0x30]
lea edi, [esi - 0x1b64963f]
mov ecx, ebx
add edi, eax
call fcn.00415130
mov edx, dword [esp + 0x20]
mov ecx, edi
mov esi, dword [esp + 0x94]
add edx, 0xefbe4786
push dword [esp + 0x38]
add esi, edx
mov edx, dword [esp + 0x28]
add esi, eax
add dword [esp + 0x2c], esi
call fcn.00415180
push dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov edx, ebx
lea ebp, [esi + eax]
call fcn.00415130
mov esi, dword [esp + 0x24]
mov edx, edi
add eax, dword [esp + 0xa0]
add esi, 0xfc19dc6
mov ecx, dword [esp + 0x2c]
add esi, eax
add dword [esp + 0x40], esi
push ecx
mov ecx, ebp
call fcn.00415180
mov edx, dword [esp + 0x34]
add eax, esi
mov ecx, dword [esp + 0x44]
push ebx
mov dword [esp + 0x50], eax
call fcn.00415130
mov esi, dword [esp + 0x40]
mov edx, ebp
add eax, dword [esp + 0xac]
add esi, 0x240ca1cc
mov ecx, dword [esp + 0x50]
add esi, eax
add dword [esp + 0x34], esi
push edi
call fcn.00415180
push dword [esp + 0x3c]
mov edx, dword [esp + 0x50]
add eax, esi
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x48], eax
call fcn.00415130
add eax, dword [esp + 0xb8]
lea esi, [ebx + 0x2de92c6f]
mov ebx, dword [esp + 0x58]
add esi, eax
push ebp
mov edx, ebx
lea eax, [edi + esi]
mov edi, dword [esp + 0x4c]
mov ecx, edi
mov dword [esp + 0x48], eax
call fcn.00415180
push dword [esp + 0x54]
mov edx, dword [esp + 0x44]
add eax, esi
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x4c]
call fcn.00415130
mov esi, dword [esp + 0x48]
mov edx, edi
add eax, dword [esp + 0xc4]
add esi, 0x4a7484aa
mov ecx, dword [esp + 0x5c]
add esi, eax
add ebp, esi
push ebx
mov dword [esp + 0x68], ebp
call fcn.00415180
push dword [esp + 0x48]
mov edx, dword [esp + 0x54]
add eax, esi
mov ecx, ebp
mov dword [esp + 0x44], eax
call fcn.00415130
mov esi, dword [esp + 0x60]
add eax, dword [esp + 0xd0]
add esi, 0x5cb0a9dc
mov edx, dword [esp + 0x64]
add esi, eax
mov ecx, dword [esp + 0x44]
add ebx, esi
push edi
mov dword [esp + 0x6c], ebx
call fcn.00415180
push dword [esp + 0x58]
add eax, esi
mov edx, ebp
mov ecx, ebx
mov dword [esp + 0x50], eax
call fcn.00415130
mov esi, dword [esp + 0x54]
add eax, dword [esp + 0xdc]
add esi, 0x76f988da
push dword [esp + 0x6c]
mov edx, dword [esp + 0x50]
add esi, eax
mov ecx, dword [esp + 0x54]
add edi, esi
mov dword [esp + 0x64], edi
call fcn.00415180
add esp, 0x40
mov dword [esp + 0x18], 8
add eax, esi
lea ebp, [esp + 0x9c]
mov dword [esp + 0x28], eax
mov esi, dword [ebp - 0x34]
mov edx, 0x12
mov ebx, dword [ebp]
mov ecx, esi
call fcn.00415110
mov edx, 7
mov ecx, esi
mov edi, eax
call fcn.00415110
xor edi, eax
shr esi, 3
mov edx, 0x13
mov ecx, ebx
xor edi, esi
call fcn.00415110
mov edx, 0x11
mov ecx, ebx
mov esi, eax
call fcn.00415110
xor esi, eax
shr ebx, 0xa
xor esi, ebx
lea ebp, [ebp + 4]
add edi, esi
add edi, dword [ebp - 0x3c]
add edi, dword [ebp - 0x18]
sub dword [esp + 0x18], 1
mov dword [ebp + 4], edi
jne 0x415821
mov ebp, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
push ebp
call fcn.00415130
mov ebx, dword [esp + 0x34]
mov esi, eax
add esi, dword [esp + 0xa8]
add ebx, 0x983e5152
add esi, dword [esp + 0x24]
push dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
add ebx, esi
mov ecx, dword [esp + 0x30]
call fcn.00415180
push dword [esp + 0x3c]
mov edx, dword [esp + 0x30]
lea edi, [esi - 0x67c1aeae]
mov ecx, ebx
add edi, eax
call fcn.00415130
mov esi, dword [esp + 0xb4]
add ebp, 0xa831c66d
push dword [esp + 0x20]
mov edx, dword [esp + 0x38]
add esi, ebp
add esi, eax
mov ecx, edi
add dword [esp + 0x20], esi
call fcn.00415180
push dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
mov edx, ebx
lea ebp, [esi + eax]
mov dword [esp + 0x2c], ebp
call fcn.00415130
mov edx, dword [esp + 0x48]
mov ecx, ebp
mov esi, dword [esp + 0xc0]
add edx, 0xb00327c8
push dword [esp + 0x3c]
add esi, edx
mov edx, edi
add esi, eax
add dword [esp + 0x2c], esi
call fcn.00415180
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
push ebx
lea ebp, [esi + eax]
mov dword [esp + 0x50], ebp
call fcn.00415130
mov ecx, dword [esp + 0xcc]
mov esi, dword [esp + 0x40]
add ecx, 0xbf597fc7
mov edx, dword [esp + 0x34]
add esi, ecx
add esi, eax
mov ecx, ebp
add dword [esp + 0x44], esi
push edi
call fcn.00415180
push dword [esp + 0x30]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x4c]
lea ebp, [esi + eax]
mov dword [esp + 0x44], ebp
call fcn.00415130
mov esi, eax
mov ecx, ebp
add esi, dword [esp + 0xd8]
lea eax, [edi - 0x391ff40d]
mov edi, dword [esp + 0x3c]
add esi, ebx
mov ebx, dword [esp + 0x58]
add eax, esi
push edi
mov edx, ebx
mov dword [esp + 0x58], eax
call fcn.00415180
add esi, 0xc6e00bf3
push dword [esp + 0x3c]
mov edx, dword [esp + 0x54]
add eax, esi
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x48], eax
call fcn.00415130
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0xe4]
add edx, 0xd5a79147
mov ecx, dword [esp + 0x48]
add esi, edx
add esi, eax
mov edx, ebp
add edi, esi
push ebx
mov dword [esp + 0x48], edi
call fcn.00415180
push dword [esp + 0x58]
mov edx, dword [esp + 0x64]
mov ecx, edi
lea ebp, [esi + eax]
mov dword [esp + 0x60], ebp
call fcn.00415130
mov esi, dword [esp + 0x48]
mov ecx, ebp
add eax, dword [esp + 0xf0]
add esi, 0x6ca6351
mov edi, dword [esp + 0x54]
add esi, eax
mov edx, dword [esp + 0x50]
add ebx, esi
push edi
mov dword [esp + 0x6c], ebx
call fcn.00415180
push dword [esp + 0x68]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x70]
lea ebx, [esi + eax]
mov dword [esp + 0x60], ebx
call fcn.00415130
mov esi, dword [esp + 0x64]
mov edx, ebp
add eax, dword [esp + 0xfc]
add esi, 0x14292967
push dword [esp + 0x58]
add esi, eax
mov ecx, ebx
add edi, esi
mov dword [esp + 0x60], edi
call fcn.00415180
add esp, 0x40
mov dword [esp + 0x10], 8
add eax, esi
lea ebp, [esp + 0xbc]
mov dword [esp + 0x38], eax
mov esi, dword [ebp - 0x34]
mov edx, 0x12
mov ebx, dword [ebp]
mov ecx, esi
call fcn.00415110
mov edx, 7
mov ecx, esi
mov edi, eax
call fcn.00415110
xor edi, eax
shr esi, 3
mov edx, 0x13
mov ecx, ebx
xor edi, esi
call fcn.00415110
mov edx, 0x11
mov ecx, ebx
mov esi, eax
call fcn.00415110
xor esi, eax
shr ebx, 0xa
xor esi, ebx
lea ebp, [ebp + 4]
add edi, esi
add edi, dword [ebp - 0x3c]
add edi, dword [ebp - 0x18]
sub dword [esp + 0x10], 1
mov dword [ebp + 4], edi
jne 0x415a85
push dword [esp + 0x18]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x24]
call fcn.00415130
mov esi, dword [esp + 0x34]
add eax, dword [esp + 0xc8]
add esi, 0x27b70a85
mov ecx, dword [esp + 0x30]
add esi, eax
mov ebp, dword [esp + 0x28]
mov edx, ebp
mov edi, dword [esp + 0x3c]
add dword [esp + 0x20], esi
push ecx
mov ecx, edi
call fcn.00415180
push dword [esp + 0x3c]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
lea ebx, [esi + eax]
call fcn.00415130
mov esi, dword [esp + 0x24]
mov edx, edi
add eax, dword [esp + 0xd4]
add esi, 0x2e1b2138
add esi, eax
mov ecx, ebx
add dword [esp + 0x38], esi
push ebp
call fcn.00415180
push dword [esp + 0x30]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x40]
lea ebp, [esi + eax]
call fcn.00415130
mov esi, dword [esp + 0x48]
mov edx, ebx
add eax, dword [esp + 0xe0]
add esi, 0x4d2c6dfc
add esi, eax
mov ecx, ebp
add dword [esp + 0x38], esi
push edi
call fcn.00415180
push dword [esp + 0x34]
mov edx, dword [esp + 0x48]
add eax, esi
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x2c], eax
call fcn.00415130
mov esi, dword [esp + 0x3c]
mov edx, ebp
add eax, dword [esp + 0xec]
add esi, 0x53380d13
mov ecx, dword [esp + 0x2c]
add esi, eax
push ebx
add edi, esi
call fcn.00415180
push dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
add eax, esi
mov ecx, edi
mov dword [esp + 0x3c], eax
call fcn.00415130
mov esi, dword [esp + 0x40]
add eax, dword [esp + 0xf8]
add esi, 0x650a7354
mov edx, dword [esp + 0x34]
add esi, eax
mov ecx, dword [esp + 0x3c]
add ebx, esi
push ebp
mov dword [esp + 0x5c], ebx
call fcn.00415180
push dword [esp + 0x4c]
add eax, esi
mov edx, edi
mov ecx, ebx
mov dword [esp + 0x5c], eax
call fcn.00415130
mov esi, dword [esp + 0x58]
add eax, dword [esp + 0x104]
add esi, 0x766a0abb
push dword [esp + 0x3c]
mov edx, dword [esp + 0x48]
add esi, eax
mov ecx, dword [esp + 0x60]
add ebp, esi
mov dword [esp + 0x68], ebp
call fcn.00415180
add eax, esi
mov edx, ebx
push edi
mov ecx, ebp
mov dword [esp + 0x48], eax
call fcn.00415130
mov ecx, dword [esp + 0x110]
mov esi, dword [esp + 0x58]
add ecx, 0x81c2c92e
push dword [esp + 0x4c]
mov edx, dword [esp + 0x68]
add esi, ecx
mov ecx, dword [esp + 0x4c]
add esi, eax
add dword [esp + 0x48], esi
call fcn.00415180
mov ecx, dword [esp + 0x48]
add eax, esi
push ebx
mov edx, ebp
mov dword [esp + 0x68], eax
call fcn.00415130
mov esi, dword [esp + 0x11c]
add eax, 0x92722c85
push dword [esp + 0x6c]
mov edx, dword [esp + 0x54]
add esi, edi
mov ecx, dword [esp + 0x6c]
add esi, eax
add dword [esp + 0x58], esi
call fcn.00415180
add esp, 0x40
mov dword [esp + 0x20], 8
add eax, esi
lea esi, [esp + 0xdc]
mov dword [esp + 0x28], eax
mov edi, dword [esi - 0x34]
mov edx, 0x12
mov ebp, dword [esi]
mov ecx, edi
call fcn.00415110
mov edx, 7
mov ecx, edi
mov ebx, eax
call fcn.00415110
xor ebx, eax
shr edi, 3
mov edx, 0x13
mov ecx, ebp
xor ebx, edi
call fcn.00415110
mov edx, 0x11
mov ecx, ebp
mov edi, eax
call fcn.00415110
xor edi, eax
shr ebp, 0xa
xor edi, ebp
lea esi, [esi + 4]
add ebx, edi
add ebx, dword [esi - 0x3c]
add ebx, dword [esi - 0x18]
sub dword [esp + 0x20], 1
mov dword [esi + 4], ebx
jne 0x415cc4
mov ebp, dword [esp + 0x38]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
push ebp
call fcn.00415130
mov ebx, dword [esp + 0x34]
mov esi, eax
add esi, dword [esp + 0xe8]
add ebx, 0xa2bfe8a1
add esi, dword [esp + 0x38]
push dword [esp + 0x18]
mov edx, dword [esp + 0x34]
add ebx, esi
mov ecx, dword [esp + 0x30]
call fcn.00415180
push dword [esp + 0x18]
mov edx, dword [esp + 0x24]
lea edi, [esi - 0x5d40175f]
mov ecx, ebx
add edi, eax
call fcn.00415130
mov esi, dword [esp + 0xf4]
add ebp, 0xa81a664b
push dword [esp + 0x38]
mov edx, dword [esp + 0x38]
add esi, ebp
add esi, eax
mov ecx, edi
add dword [esp + 0x24], esi
call fcn.00415180
mov ebp, dword [esp + 0x28]
add eax, esi
mov ecx, dword [esp + 0x24]
mov edx, ebx
push ebp
mov dword [esp + 0x30], eax
call fcn.00415130
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x100]
add edx, 0xc24b8b70
push dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
add esi, edx
add esi, eax
mov edx, edi
add dword [esp + 0x44], esi
call fcn.00415180
mov edx, dword [esp + 0x2c]
add eax, esi
mov ecx, dword [esp + 0x44]
push ebx
mov dword [esp + 0x34], eax
call fcn.00415130
mov esi, dword [esp + 0x10c]
add ebp, 0xc76c51a3
mov edx, dword [esp + 0x38]
add esi, ebp
mov ecx, dword [esp + 0x34]
add esi, eax
add dword [esp + 0x44], esi
push edi
call fcn.00415180
push dword [esp + 0x34]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
lea ebp, [esi + eax]
mov dword [esp + 0x44], ebp
call fcn.00415130
push dword [esp + 0x40]
mov esi, eax
mov ecx, ebp
add esi, dword [esp + 0x11c]
lea eax, [edi - 0x2e6d17e7]
add esi, ebx
mov ebx, dword [esp + 0x40]
add eax, esi
mov edx, ebx
mov dword [esp + 0x58], eax
call fcn.00415180
add esi, 0xd192e819
add eax, esi
mov edi, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x58]
push edi
mov dword [esp + 0x3c], eax
call fcn.00415130
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x124]
add edx, 0xd6990624
mov ecx, dword [esp + 0x3c]
add esi, edx
add esi, eax
mov edx, ebp
add dword [esp + 0x48], esi
push ebx
call fcn.00415180
push dword [esp + 0x58]
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x50]
lea ebp, [esi + eax]
mov dword [esp + 0x48], ebp
call fcn.00415130
mov esi, dword [esp + 0x130]
add edi, 0xf40e3585
mov edx, dword [esp + 0x44]
add esi, edi
mov edi, dword [esp + 0x54]
add esi, eax
add ebx, esi
mov ecx, ebp
push edi
mov dword [esp + 0x50], ebx
call fcn.00415180
push dword [esp + 0x68]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
lea ebx, [esi + eax]
mov dword [esp + 0x60], ebx
call fcn.00415130
mov esi, dword [esp + 0x64]
mov edx, ebp
add eax, dword [esp + 0x13c]
add esi, 0x106aa070
push dword [esp + 0x4c]
add esi, eax
mov ecx, ebx
add edi, esi
mov dword [esp + 0x60], edi
call fcn.00415180
add esp, 0x40
mov dword [esp + 0x34], 8
add eax, esi
lea ebp, [esp + 0xfc]
mov dword [esp + 0x38], eax
mov esi, dword [ebp]
mov edx, 0x13
mov ebx, dword [ebp - 0x34]
mov ecx, esi
call fcn.00415110
mov edx, 0x11
mov ecx, esi
mov edi, eax
call fcn.00415110
xor edi, eax
shr esi, 0xa
mov edx, 0x12
mov ecx, ebx
xor edi, esi
call fcn.00415110
mov edx, 7
mov ecx, ebx
mov esi, eax
call fcn.00415110
xor esi, eax
shr ebx, 3
xor esi, ebx
lea ebp, [ebp + 4]
add edi, esi
add edi, dword [ebp - 0x3c]
add edi, dword [ebp - 0x18]
sub dword [esp + 0x34], 1
mov dword [ebp + 4], edi
jne 0x415f24
push dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
call fcn.00415130
mov esi, dword [esp + 0x34]
add eax, dword [esp + 0x108]
add esi, 0x19a4c116
mov ecx, dword [esp + 0x18]
add esi, eax
mov ebp, dword [esp + 0x28]
mov edx, ebp
mov edi, dword [esp + 0x3c]
add dword [esp + 0x14], esi
push ecx
mov ecx, edi
call fcn.00415180
push dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x1c]
lea ebx, [esi + eax]
call fcn.00415130
mov esi, dword [esp + 0x28]
mov edx, edi
add eax, dword [esp + 0x114]
add esi, 0x1e376c08
add esi, eax
mov ecx, ebx
add dword [esp + 0x20], esi
push ebp
call fcn.00415180
push dword [esp + 0x30]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
lea ebp, [esi + eax]
call fcn.00415130
mov esi, dword [esp + 0x2c]
mov edx, ebx
add eax, dword [esp + 0x120]
add esi, 0x2748774c
add esi, eax
mov ecx, ebp
add dword [esp + 0x38], esi
push edi
call fcn.00415180
push dword [esp + 0x28]
mov edx, dword [esp + 0x30]
add eax, esi
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x48], eax
call fcn.00415130
mov esi, dword [esp + 0x3c]
mov edx, ebp
add eax, dword [esp + 0x12c]
add esi, 0x34b0bcb5
mov ecx, dword [esp + 0x48]
add esi, eax
push ebx
add edi, esi
call fcn.00415180
push dword [esp + 0x34]
mov edx, dword [esp + 0x48]
add eax, esi
mov ecx, edi
mov dword [esp + 0x3c], eax
call fcn.00415130
mov esi, dword [esp + 0x34]
add eax, dword [esp + 0x138]
add esi, 0x391c0cb3
mov edx, dword [esp + 0x50]
add esi, eax
mov ecx, dword [esp + 0x3c]
add ebx, esi
push ebp
mov dword [esp + 0x5c], ebx
call fcn.00415180
push dword [esp + 0x4c]
add eax, esi
mov edx, edi
mov ecx, ebx
mov dword [esp + 0x3c], eax
call fcn.00415130
mov esi, dword [esp + 0x40]
add eax, dword [esp + 0x144]
add esi, 0x4ed8aa4a
push dword [esp + 0x58]
mov edx, dword [esp + 0x48]
add esi, eax
mov ecx, dword [esp + 0x40]
add ebp, esi
mov dword [esp + 0x68], ebp
call fcn.00415180
add eax, esi
mov edx, ebx
push edi
mov ecx, ebp
mov dword [esp + 0x48], eax
call fcn.00415130
mov esi, dword [esp + 0x58]
add eax, dword [esp + 0x150]
add esi, 0x5b9cca4f
push dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
add esi, eax
mov ecx, dword [esp + 0x4c]
add dword [esp + 0x64], esi
call fcn.00415180
mov ecx, dword [esp + 0x64]
add eax, esi
push ebx
mov edx, ebp
mov dword [esp + 0x64], eax
call fcn.00415130
add eax, dword [esp + 0x15c]
push dword [esp + 0x4c]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x68]
lea esi, [eax + 0x682e6ff3]
add esi, edi
add dword [esp + 0x58], esi
call fcn.00415180
add esp, 0x40
mov dword [esp + 0x20], 8
add eax, esi
lea ebp, [esp + 0x11c]
mov dword [esp + 0x30], eax
mov esi, dword [ebp]
mov edx, 0x13
mov ebx, dword [ebp - 0x34]
mov ecx, esi
call fcn.00415110
mov edx, 0x11
mov ecx, esi
mov edi, eax
call fcn.00415110
xor edi, eax
shr esi, 0xa
mov edx, 0x12
mov ecx, ebx
xor edi, esi
call fcn.00415110
mov edx, 7
mov ecx, ebx
mov esi, eax
call fcn.00415110
xor esi, eax
shr ebx, 3
xor esi, ebx
lea ebp, [ebp + 4]
add edi, esi
add edi, dword [ebp - 0x3c]
add edi, dword [ebp - 0x18]
sub dword [esp + 0x20], 1
mov dword [ebp + 4], edi
jne 0x416160
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x2c]
mov edx, ebx
mov ecx, dword [esp + 0x18]
push edi
call fcn.00415130
mov esi, dword [esp + 0x38]
add eax, dword [esp + 0x128]
add esi, 0x748f82ee
push dword [esp + 0x18]
mov edx, dword [esp + 0x30]
add esi, eax
mov ecx, dword [esp + 0x38]
add dword [esp + 0x18], esi
call fcn.00415180
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
push ebx
lea ebp, [esi + eax]
mov dword [esp + 0x28], ebp
call fcn.00415130
add eax, dword [esp + 0x134]
lea esi, [edi + 0x78a5636f]
push dword [esp + 0x34]
mov edx, dword [esp + 0x40]
add esi, eax
add dword [esp + 0x24], esi
mov ecx, ebp
call fcn.00415180
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
lea ebx, [esi + eax]
push edi
mov dword [esp + 0x34], ebx
call fcn.00415130
mov edx, dword [esp + 0x40]
mov ecx, ebx
mov esi, dword [esp + 0x140]
add edx, 0x84c87814
push dword [esp + 0x44]
add esi, edx
mov edx, ebp
add esi, eax
add dword [esp + 0x40], esi
call fcn.00415180
push dword [esp + 0x28]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x44]
lea ebp, [esi + eax]
mov dword [esp + 0x50], ebp
call fcn.00415130
push dword [esp + 0x38]
mov esi, eax
mov edx, ebx
add esi, dword [esp + 0x150]
mov ecx, ebp
add esi, edi
mov edi, dword [esp + 0x50]
add edi, 0x8cc70208
add edi, esi
mov dword [esp + 0x58], edi
call fcn.00415180
push dword [esp + 0x34]
mov edx, dword [esp + 0x4c]
lea ebx, [esi - 0x7338fdf8]
add ebx, eax
mov ecx, edi
mov dword [esp + 0x54], ebx
call fcn.00415130
mov edx, dword [esp + 0x34]
mov ecx, ebx
mov esi, dword [esp + 0x158]
add edx, 0x90befffa
push dword [esp + 0x44]
add esi, edx
mov edx, ebp
add esi, eax
add dword [esp + 0x44], esi
call fcn.00415180
lea ebp, [esi + eax]
push dword [esp + 0x50]
mov ecx, dword [esp + 0x48]
mov edx, edi
call fcn.00415130
mov edx, dword [esp + 0x40]
mov ecx, ebp
mov esi, dword [esp + 0x164]
add edx, 0xa4506ceb
push dword [esp + 0x60]
add esi, edx
mov edx, ebx
add esi, eax
add dword [esp + 0x50], esi
call fcn.00415180
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
push edi
lea ebx, [esi + eax]
call fcn.00415130
mov edi, dword [esp + 0x5c]
mov edx, ebp
mov esi, dword [esp + 0x170]
add edi, 0xbef9a3f7
push dword [esp + 0x64]
add esi, edi
mov ecx, ebx
add esi, eax
add dword [esp + 0x6c], esi
call fcn.00415180
push dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x70]
lea edi, [esi + eax]
call fcn.00415130
add eax, dword [esp + 0x17c]
mov edx, ebx
mov esi, dword [esp + 0x74]
mov ecx, edi
push ebp
add esi, eax
call fcn.00415180
mov ecx, dword [esp + 0x7c]
add esp, 0x40
add ecx, 0xc67178f2
add ecx, esi
add eax, ecx
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx + 0x10]
add dword [ecx + 4], edi
add edx, 0xc67178f2
add dword [ecx + 0xc], ebp
add dword [ecx + 8], ebx
mov dword [ecx], eax
mov eax, dword [esp + 0x30]
add eax, esi
add eax, edx
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x34]
add dword [ecx + 0x14], eax
mov eax, dword [esp + 0x20]
add dword [ecx + 0x18], eax
mov eax, dword [esp + 0x1c]
add dword [ecx + 0x1c], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x134
ret 4