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

Disassembly:
sub esp, 0x13c
mov eax, ecx
push ebx
push ebp
push esi
mov ecx, dword [eax + 0x4c]
xor esi, esi
mov ebx, dword [eax + 0x50]
mov ebp, ecx
mov dword [esp + 0x40], ecx
mov ecx, dword [eax + 0x54]
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 0x58]
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 0x5c]
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 0x60]
mov dword [esp + 0x44], eax
mov dword [esp + 0x38], ecx
mov ecx, dword [eax + 0x64]
mov eax, dword [eax + 0x68]
push edi
mov edi, dword [esp + 0x150]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x4c]
mov dword [esp + 0x30], ebp
sub edi, eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x40], ecx
lea ecx, [ecx]
lea ecx, [edi + esi*4]
mov ecx, dword [esp + ecx + 0x4c]
call fcn.00416330
mov dword [esp + esi*4 + 0x4c], eax
inc esi
cmp esi, 0x10
jl 0x416460
push dword [esp + 0x40]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
call fcn.00416360
mov edi, dword [esp + 0x28]
mov edx, ebx
add eax, dword [esp + 0x50]
add edi, 0x428a2f98
mov ecx, dword [esp + 0x20]
add edi, eax
add dword [esp + 0x24], edi
push ecx
mov ecx, ebp
call fcn.004163b0
push dword [esp + 0x44]
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x2c]
lea ebx, [edi + eax]
call fcn.00416360
mov edi, dword [esp + 0x4c]
mov ecx, ebx
add eax, dword [esp + 0x5c]
add edi, 0x71374491
mov edx, dword [esp + 0x38]
add edi, eax
add dword [esp + 0x28], edi
push edx
mov edx, ebp
call fcn.004163b0
push dword [esp + 0x48]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
lea ebp, [edi + eax]
call fcn.00416360
mov edx, dword [esp + 0x50]
mov ecx, ebp
mov edi, dword [esp + 0x68]
add edx, 0xb5c0fbcf
add edi, edx
mov edx, dword [esp + 0x44]
add edi, eax
add dword [esp + 0x40], edi
push edx
mov edx, ebx
call fcn.004163b0
push dword [esp + 0x38]
mov edx, dword [esp + 0x38]
add eax, edi
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x34], eax
call fcn.00416360
mov ecx, dword [esp + 0x74]
mov edx, ebp
mov edi, dword [esp + 0x54]
add ecx, 0xe9b5dba5
add edi, ecx
mov ecx, dword [esp + 0x34]
add edi, eax
add dword [esp + 0x4c], edi
push ebx
call fcn.004163b0
push dword [esp + 0x3c]
mov edx, dword [esp + 0x50]
add eax, edi
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x38], eax
call fcn.00416360
mov edi, dword [esp + 0x44]
add eax, dword [esp + 0x80]
add edi, 0x3956c25b
mov edx, dword [esp + 0x3c]
add edi, eax
mov ecx, dword [esp + 0x38]
add ebx, edi
push ebp
call fcn.004163b0
push dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
add eax, edi
mov dword [esp + 0x3c], eax
mov ecx, ebx
call fcn.00416360
mov edi, dword [esp + 0x48]
add eax, dword [esp + 0x8c]
add edi, 0x59f111f1
push dword [esp + 0x44]
mov edx, dword [esp + 0x44]
add edi, eax
mov ecx, dword [esp + 0x40]
add ebp, edi
mov dword [esp + 0x50], ebp
call fcn.004163b0
push dword [esp + 0x60]
mov ecx, dword [esp + 0x54]
mov edx, ebx
lea ebp, [edi + eax]
call fcn.00416360
mov edx, dword [esp + 0x60]
mov ecx, ebp
mov edi, dword [esp + 0x98]
add edx, 0x923f82a4
push dword [esp + 0x48]
add edi, edx
mov edx, dword [esp + 0x48]
add edi, eax
add dword [esp + 0x50], edi
call fcn.004163b0
mov edx, dword [esp + 0x58]
add eax, edi
mov ecx, dword [esp + 0x50]
push ebx
mov dword [esp + 0x58], eax
call fcn.00416360
mov edx, dword [esp + 0x6c]
mov edi, dword [esp + 0xa4]
add edx, 0xab1c5ed5
push dword [esp + 0x4c]
mov ecx, dword [esp + 0x5c]
add edi, edx
add edi, eax
mov edx, ebp
add dword [esp + 0x54], edi
call fcn.004163b0
mov edx, dword [esp + 0x58]
add esp, 0x40
mov ecx, dword [esp + 0x14]
add eax, edi
mov dword [esp + 0x40], eax
push dword [esp + 0x20]
call fcn.00416360
mov edi, dword [esp + 0x70]
add eax, 0xd807aa98
mov ecx, dword [esp + 0x44]
add edi, ebx
mov ebx, dword [esp + 0x20]
add edi, eax
add dword [esp + 0x14], edi
mov edx, ebx
push ebp
call fcn.004163b0
push dword [esp + 0x20]
mov edx, dword [esp + 0x20]
add eax, edi
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x34], eax
call fcn.00416360
mov edi, dword [esp + 0x2c]
add eax, dword [esp + 0x7c]
add edi, 0x12835b01
mov edx, dword [esp + 0x4c]
add edi, eax
mov ecx, dword [esp + 0x34]
add ebp, edi
push ebx
call fcn.004163b0
push dword [esp + 0x24]
mov edx, dword [esp + 0x24]
add eax, edi
mov ecx, ebp
mov dword [esp + 0x48], eax
call fcn.00416360
add eax, dword [esp + 0x88]
mov edi, dword [esp + 0x2c]
push dword [esp + 0x54]
mov edx, dword [esp + 0x40]
add edi, 0x243185be
mov ecx, dword [esp + 0x4c]
add edi, eax
add ebx, edi
call fcn.004163b0
push dword [esp + 0x28]
add eax, edi
mov edx, ebp
mov ecx, ebx
mov dword [esp + 0x34], eax
call fcn.00416360
mov edi, dword [esp + 0x30]
add eax, dword [esp + 0x94]
add edi, 0x550c7dc3
push dword [esp + 0x44]
mov edx, dword [esp + 0x54]
add edi, eax
mov ecx, dword [esp + 0x38]
add dword [esp + 0x60], edi
call fcn.004163b0
mov ecx, dword [esp + 0x60]
add eax, edi
push ebp
mov edx, ebx
mov dword [esp + 0x38], eax
call fcn.00416360
mov edi, dword [esp + 0x34]
add eax, dword [esp + 0xa0]
add edi, 0x72be5d74
push dword [esp + 0x58]
mov edx, dword [esp + 0x40]
add edi, eax
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x50], edi
call fcn.004163b0
mov edx, dword [esp + 0x68]
add eax, edi
mov ecx, dword [esp + 0x50]
push ebx
mov dword [esp + 0x3c], eax
call fcn.00416360
mov edi, dword [esp + 0xac]
add eax, 0x80deb1fe
push dword [esp + 0x44]
mov edx, dword [esp + 0x44]
add edi, ebp
mov ecx, dword [esp + 0x40]
add edi, eax
add dword [esp + 0x64], edi
call fcn.004163b0
mov ebp, dword [esp + 0x70]
add eax, edi
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x64]
push ebp
mov dword [esp + 0x58], eax
call fcn.00416360
mov edi, dword [esp + 0xb8]
add eax, 0x9bdc06a7
push dword [esp + 0x48]
mov edx, dword [esp + 0x48]
add edi, ebx
mov ecx, dword [esp + 0x5c]
add edi, eax
add dword [esp + 0x50], edi
call fcn.004163b0
push dword [esp + 0x60]
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x54]
lea ebx, [edi + eax]
mov dword [esp + 0x78], ebx
call fcn.00416360
mov edi, dword [esp + 0xc4]
add ebp, 0xc19bf174
push dword [esp + 0x4c]
add edi, ebp
add edi, eax
add dword [esp + 0x54], edi
mov edx, dword [esp + 0x64]
mov ecx, ebx
call fcn.004163b0
add esp, 0x40
lea ebp, [edi + eax]
mov dword [esp + 0x38], ebp
cmp esi, 0x18
jge 0x4168aa
lea eax, [esp + esi*4 + 0x44]
mov dword [esp + 0x1c], eax
mov eax, 0x18
sub eax, esi
add esi, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x1c]
mov edi, dword [esi]
mov edx, 0x13
mov ebp, dword [esi - 0x34]
mov ecx, edi
call fcn.00416320
mov edx, 0x11
mov ecx, edi
mov ebx, eax
call fcn.00416320
xor ebx, eax
shr edi, 0xa
mov edx, 0x12
mov ecx, ebp
xor ebx, edi
call fcn.00416320
mov edx, 7
mov ecx, ebp
mov edi, eax
call fcn.00416320
xor edi, eax
shr ebp, 3
xor edi, ebp
lea esi, [esi + 4]
add ebx, edi
add ebx, dword [esi - 0x3c]
add ebx, dword [esi - 0x18]
dec dword [esp + 0x20]
mov dword [esi + 4], ebx
jne 0x416843
mov esi, dword [esp + 0x40]
mov ebp, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
push dword [esp + 0x34]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
call fcn.00416360
mov edx, dword [esp + 0x2c]
mov ecx, ebp
mov edi, dword [esp + 0x90]
add edx, 0xe49b69c1
push dword [esp + 0x28]
add edi, edx
mov edx, ebx
add edi, eax
add dword [esp + 0x18], edi
call fcn.004163b0
push dword [esp + 0x20]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
lea ebx, [edi + eax]
call fcn.00416360
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x9c]
add edx, 0xefbe4786
mov ecx, dword [esp + 0x48]
add edi, edx
add edi, eax
mov edx, ebp
add dword [esp + 0x30], edi
push ecx
mov ecx, ebx
call fcn.004163b0
push dword [esp + 0x24]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x38]
lea ebp, [edi + eax]
call fcn.00416360
mov edi, dword [esp + 0x2c]
mov edx, ebx
add eax, dword [esp + 0xa8]
add edi, 0xfc19dc6
mov ecx, dword [esp + 0x4c]
add edi, eax
add dword [esp + 0x50], edi
push ecx
mov ecx, ebp
call fcn.004163b0
push dword [esp + 0x28]
mov edx, dword [esp + 0x40]
add eax, edi
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x34], eax
call fcn.00416360
mov edi, dword [esp + 0x30]
mov edx, ebp
add eax, dword [esp + 0xb4]
add edi, 0x240ca1cc
mov ecx, dword [esp + 0x34]
add edi, eax
add dword [esp + 0x54], edi
push ebx
call fcn.004163b0
push dword [esp + 0x44]
mov edx, dword [esp + 0x60]
add eax, edi
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x38], eax
call fcn.00416360
mov edi, dword [esp + 0x34]
add eax, dword [esp + 0xc0]
add edi, 0x2de92c6f
mov edx, dword [esp + 0x3c]
add edi, eax
mov ecx, dword [esp + 0x38]
add ebx, edi
push ebp
mov dword [esp + 0x50], ebx
call fcn.004163b0
push dword [esp + 0x64]
mov edx, dword [esp + 0x64]
add eax, edi
mov dword [esp + 0x5c], eax
mov ecx, ebx
call fcn.00416360
mov edi, dword [esp + 0x50]
add eax, dword [esp + 0xcc]
add edi, 0x4a7484aa
push dword [esp + 0x44]
mov edx, dword [esp + 0x44]
add edi, eax
mov ecx, dword [esp + 0x60]
add ebp, edi
mov dword [esp + 0x40], ebp
call fcn.004163b0
push dword [esp + 0x68]
add eax, edi
mov edx, ebx
mov ecx, ebp
mov dword [esp + 0x60], eax
call fcn.00416360
mov edi, dword [esp + 0x70]
add eax, dword [esp + 0xd8]
add edi, 0x5cb0a9dc
push dword [esp + 0x48]
mov edx, dword [esp + 0x68]
add edi, eax
mov ecx, dword [esp + 0x64]
add dword [esp + 0x50], edi
call fcn.004163b0
mov ecx, dword [esp + 0x50]
add eax, edi
push ebx
mov edx, ebp
mov dword [esp + 0x60], eax
call fcn.00416360
mov edi, dword [esp + 0x74]
add eax, dword [esp + 0xe4]
add edi, 0x76f988da
push dword [esp + 0x6c]
mov edx, dword [esp + 0x6c]
add edi, eax
mov ecx, dword [esp + 0x64]
add dword [esp + 0x54], edi
call fcn.004163b0
add eax, edi
add esp, 0x40
mov dword [esp + 0x34], eax
cmp esi, 0x20
jge 0x416b17
lea ecx, [esp + esi*4 + 0x44]
mov dword [esp + 0x1c], ecx
mov ecx, 0x20
sub ecx, esi
add esi, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x1c]
mov edi, dword [esi - 0x34]
mov edx, 0x12
mov ebp, dword [esi]
mov ecx, edi
call fcn.00416320
mov edx, 7
mov ecx, edi
mov ebx, eax
call fcn.00416320
xor ebx, eax
shr edi, 3
mov edx, 0x13
mov ecx, ebp
xor ebx, edi
call fcn.00416320
mov edx, 0x11
mov ecx, ebp
mov edi, eax
call fcn.00416320
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]
dec dword [esp + 0x20]
mov dword [esi + 4], ebx
jne 0x416ab0
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push ebp
call fcn.00416360
mov edi, dword [esp + 0xb0]
add eax, 0x983e5152
push dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
add edi, ebx
mov ecx, dword [esp + 0x3c]
add edi, eax
add dword [esp + 0x38], edi
call fcn.004163b0
mov ebx, dword [esp + 0x20]
add eax, edi
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x38]
push ebx
mov dword [esp + 0x34], eax
call fcn.00416360
mov edi, dword [esp + 0xbc]
add eax, 0xa831c66d
push dword [esp + 0x30]
mov edx, dword [esp + 0x44]
add edi, ebp
mov ecx, dword [esp + 0x38]
add edi, eax
add dword [esp + 0x3c], edi
call fcn.004163b0
mov ebp, dword [esp + 0x24]
add eax, edi
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
push ebp
mov dword [esp + 0x24], eax
call fcn.00416360
mov edi, dword [esp + 0xc8]
add ebx, 0xb00327c8
push dword [esp + 0x48]
mov edx, dword [esp + 0x40]
add edi, ebx
mov ecx, dword [esp + 0x28]
add edi, eax
add dword [esp + 0x3c], edi
call fcn.004163b0
mov ebx, dword [esp + 0x48]
add eax, edi
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x3c]
push ebx
mov dword [esp + 0x30], eax
call fcn.00416360
mov edi, dword [esp + 0xd4]
add ebp, 0xbf597fc7
push dword [esp + 0x44]
mov edx, dword [esp + 0x30]
add edi, ebp
mov ecx, dword [esp + 0x34]
add edi, eax
add dword [esp + 0x54], edi
call fcn.004163b0
mov ebp, dword [esp + 0x4c]
add eax, edi
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x54]
push ebp
mov dword [esp + 0x3c], eax
call fcn.00416360
mov edi, dword [esp + 0xe0]
add ebx, 0xc6e00bf3
push dword [esp + 0x34]
mov edx, dword [esp + 0x3c]
add edi, ebx
mov ecx, dword [esp + 0x40]
add edi, eax
add dword [esp + 0x50], edi
call fcn.004163b0
push dword [esp + 0x4c]
mov edx, dword [esp + 0x60]
lea ebx, [edi + eax]
mov dword [esp + 0x48], ebx
mov ecx, dword [esp + 0x54]
call fcn.00416360
mov edi, dword [esp + 0xec]
add ebp, 0xd5a79147
push dword [esp + 0x40]
mov edx, dword [esp + 0x48]
add edi, ebp
add edi, eax
mov ecx, ebx
add dword [esp + 0x40], edi
call fcn.004163b0
push dword [esp + 0x64]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x44]
lea ebp, [edi + eax]
mov dword [esp + 0x54], ebp
call fcn.00416360
mov edi, dword [esp + 0x58]
mov edx, ebx
add eax, dword [esp + 0xf8]
add edi, 0x6ca6351
push dword [esp + 0x4c]
add edi, eax
mov ecx, ebp
add dword [esp + 0x4c], edi
call fcn.004163b0
push dword [esp + 0x60]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
lea ebx, [edi + eax]
mov dword [esp + 0x68], ebx
call fcn.00416360
mov edi, dword [esp + 0x70]
mov edx, ebp
add eax, dword [esp + 0x104]
add edi, 0x14292967
mov ecx, dword [esp + 0x58]
add edi, eax
add dword [esp + 0x54], edi
push ecx
mov ecx, ebx
call fcn.004163b0
add esp, 0x40
lea ebp, [edi + eax]
mov dword [esp + 0x30], ebp
cmp esi, 0x28
jge 0x416d8d
lea ecx, [esp + esi*4 + 0x44]
mov dword [esp + 0x3c], ecx
mov ecx, 0x28
sub ecx, esi
add esi, ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x3c]
mov edi, dword [esi]
mov edx, 0x13
mov ebp, dword [esi - 0x34]
mov ecx, edi
call fcn.00416320
mov edx, 0x11
mov ecx, edi
mov ebx, eax
call fcn.00416320
xor ebx, eax
shr edi, 0xa
mov edx, 0x12
mov ecx, ebp
xor ebx, edi
call fcn.00416320
mov edx, 7
mov ecx, ebp
mov edi, eax
call fcn.00416320
xor edi, eax
shr ebp, 3
xor edi, ebp
lea esi, [esi + 4]
add ebx, edi
add ebx, dword [esi - 0x3c]
add ebx, dword [esi - 0x18]
dec dword [esp + 0x38]
mov dword [esi + 4], ebx
jne 0x416d26
mov esi, dword [esp + 0x40]
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
push dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
call fcn.00416360
mov edi, dword [esp + 0x2c]
mov edx, ebx
add eax, dword [esp + 0xd0]
add edi, 0x27b70a85
mov ecx, dword [esp + 0x24]
add edi, eax
add dword [esp + 0x20], edi
push ecx
mov ecx, ebp
call fcn.004163b0
push dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
lea ebx, [edi + eax]
call fcn.00416360
mov edi, dword [esp + 0x1c]
mov ecx, ebx
add eax, dword [esp + 0xdc]
add edi, 0x2e1b2138
mov edx, dword [esp + 0x38]
add edi, eax
add dword [esp + 0x2c], edi
push edx
mov edx, ebp
call fcn.004163b0
push dword [esp + 0x28]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
lea ebp, [edi + eax]
call fcn.00416360
mov edi, dword [esp + 0x28]
mov ecx, ebp
add eax, dword [esp + 0xe8]
add edi, 0x4d2c6dfc
mov edx, dword [esp + 0x44]
add edi, eax
add dword [esp + 0x40], edi
push edx
mov edx, ebx
call fcn.004163b0
push dword [esp + 0x34]
mov edx, dword [esp + 0x3c]
add eax, edi
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x54], eax
call fcn.00416360
mov edi, dword [esp + 0x34]
mov edx, ebp
add eax, dword [esp + 0xf4]
add edi, 0x53380d13
mov ecx, dword [esp + 0x54]
add edi, eax
add dword [esp + 0x4c], edi
push ebx
call fcn.004163b0
push dword [esp + 0x40]
mov edx, dword [esp + 0x50]
add eax, edi
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x60], eax
call fcn.00416360
mov edi, dword [esp + 0x40]
add eax, dword [esp + 0x100]
add edi, 0x650a7354
mov edx, dword [esp + 0x5c]
add edi, eax
mov ecx, dword [esp + 0x60]
add ebx, edi
push ebp
mov dword [esp + 0x38], ebx
call fcn.004163b0
push dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
add eax, edi
mov ecx, ebx
mov dword [esp + 0x48], eax
call fcn.00416360
mov edi, dword [esp + 0x4c]
add eax, dword [esp + 0x10c]
add edi, 0x766a0abb
push dword [esp + 0x64]
mov edx, dword [esp + 0x6c]
add edi, eax
mov ecx, dword [esp + 0x4c]
add ebp, edi
mov dword [esp + 0x44], ebp
call fcn.004163b0
push dword [esp + 0x60]
add eax, edi
mov edx, ebx
mov ecx, ebp
mov dword [esp + 0x58], eax
call fcn.00416360
mov edx, dword [esp + 0x60]
mov edi, dword [esp + 0x118]
add edx, 0x81c2c92e
push dword [esp + 0x70]
mov ecx, dword [esp + 0x5c]
add edi, edx
mov edx, dword [esp + 0x54]
add edi, eax
add dword [esp + 0x70], edi
call fcn.004163b0
mov ecx, dword [esp + 0x70]
add eax, edi
push ebx
mov edx, ebp
mov dword [esp + 0x70], eax
call fcn.00416360
mov edx, dword [esp + 0x6c]
mov edi, dword [esp + 0x124]
add edx, 0x92722c85
push dword [esp + 0x58]
mov ecx, dword [esp + 0x74]
add edi, edx
mov edx, dword [esp + 0x64]
add edi, eax
add dword [esp + 0x7c], edi
call fcn.004163b0
add eax, edi
add esp, 0x40
mov dword [esp + 0x28], eax
cmp esi, 0x30
jge 0x416ffb
lea ecx, [esp + esi*4 + 0x44]
mov dword [esp + 0x2c], ecx
mov ecx, 0x30
sub ecx, esi
add esi, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x2c]
mov edi, dword [esi - 0x34]
mov edx, 0x12
mov ebp, dword [esi]
mov ecx, edi
call fcn.00416320
mov edx, 7
mov ecx, edi
mov ebx, eax
call fcn.00416320
xor ebx, eax
shr edi, 3
mov edx, 0x13
mov ecx, ebp
xor ebx, edi
call fcn.00416320
mov edx, 0x11
mov ecx, ebp
mov edi, eax
call fcn.00416320
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]
dec dword [esp + 0x20]
mov dword [esi + 4], ebx
jne 0x416f94
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
push ebp
call fcn.00416360
mov edi, dword [esp + 0xf0]
add eax, 0xa2bfe8a1
push dword [esp + 0x28]
mov edx, dword [esp + 0x3c]
add edi, ebx
mov ecx, dword [esp + 0x30]
add edi, eax
add dword [esp + 0x24], edi
call fcn.004163b0
mov ebx, dword [esp + 0x40]
add eax, edi
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x24]
push ebx
mov dword [esp + 0x1c], eax
call fcn.00416360
mov edi, dword [esp + 0xfc]
add eax, 0xa81a664b
push dword [esp + 0x40]
mov edx, dword [esp + 0x38]
add edi, ebp
mov ecx, dword [esp + 0x20]
add edi, eax
add dword [esp + 0x34], edi
call fcn.004163b0
mov ebp, dword [esp + 0x4c]
add eax, edi
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
push ebp
mov dword [esp + 0x28], eax
call fcn.00416360
mov edi, dword [esp + 0x108]
add ebx, 0xc24b8b70
push dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
add edi, ebx
mov ecx, dword [esp + 0x2c]
add edi, eax
add dword [esp + 0x4c], edi
call fcn.004163b0
mov ebx, dword [esp + 0x34]
add eax, edi
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x4c]
push ebx
mov dword [esp + 0x34], eax
call fcn.00416360
mov edi, dword [esp + 0x114]
add ebp, 0xc76c51a3
push dword [esp + 0x2c]
mov edx, dword [esp + 0x34]
add edi, ebp
mov ecx, dword [esp + 0x38]
add edi, eax
add dword [esp + 0x48], edi
call fcn.004163b0
push dword [esp + 0x44]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x4c]
lea ebp, [edi + eax]
mov dword [esp + 0x44], ebp
call fcn.00416360
mov edi, dword [esp + 0x120]
add ebx, 0xd192e819
push dword [esp + 0x38]
mov edx, dword [esp + 0x40]
add edi, ebx
add edi, eax
mov ecx, ebp
add dword [esp + 0x38], edi
call fcn.004163b0
push dword [esp + 0x5c]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x3c]
lea ebx, [edi + eax]
mov dword [esp + 0x64], ebx
call fcn.00416360
mov edx, dword [esp + 0x50]
mov ecx, ebx
mov edi, dword [esp + 0x12c]
add edx, 0xd6990624
push dword [esp + 0x44]
add edi, edx
mov edx, ebp
add edi, eax
add dword [esp + 0x44], edi
call fcn.004163b0
push dword [esp + 0x58]
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
lea ebp, [edi + eax]
mov dword [esp + 0x70], ebp
call fcn.00416360
mov edx, dword [esp + 0x68]
mov edi, dword [esp + 0x138]
add edx, 0xf40e3585
mov ecx, dword [esp + 0x54]
add edi, edx
add edi, eax
mov edx, ebx
add dword [esp + 0x4c], edi
push ecx
mov ecx, ebp
call fcn.004163b0
push dword [esp + 0x48]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
lea ebx, [edi + eax]
mov dword [esp + 0x58], ebx
call fcn.00416360
mov edi, dword [esp + 0x64]
mov edx, ebp
add eax, dword [esp + 0x144]
add edi, 0x106aa070
mov ecx, dword [esp + 0x74]
add edi, eax
add dword [esp + 0x5c], edi
push ecx
mov ecx, ebx
call fcn.004163b0
add esp, 0x40
lea ebp, [edi + eax]
mov dword [esp + 0x2c], ebp
cmp esi, 0x38
jge 0x417277
lea ecx, [esp + esi*4 + 0x44]
mov dword [esp + 0x24], ecx
mov ecx, 0x38
sub ecx, esi
add esi, ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x24]
lea ecx, [ecx]
mov edi, dword [esi - 0x34]
mov edx, 0x12
mov ebp, dword [esi]
mov ecx, edi
call fcn.00416320
mov edx, 7
mov ecx, edi
mov ebx, eax
call fcn.00416320
xor ebx, eax
shr edi, 3
mov edx, 0x13
mov ecx, ebp
xor ebx, edi
call fcn.00416320
mov edx, 0x11
mov ecx, ebp
mov edi, eax
call fcn.00416320
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]
dec dword [esp + 0x30]
mov dword [esi + 4], ebx
jne 0x417210
mov esi, dword [esp + 0x40]
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x1c]
push dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
call fcn.00416360
mov edi, dword [esp + 0x14]
mov edx, ebx
add eax, dword [esp + 0x110]
add edi, 0x19a4c116
mov ecx, dword [esp + 0x40]
add edi, eax
add dword [esp + 0x3c], edi
push ecx
mov ecx, ebp
call fcn.004163b0
push dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x44]
lea ebx, [edi + eax]
call fcn.00416360
mov edi, dword [esp + 0x20]
mov edx, ebp
add eax, dword [esp + 0x11c]
add edi, 0x1e376c08
mov ecx, dword [esp + 0x28]
add edi, eax
add dword [esp + 0x48], edi
push ecx
mov ecx, ebx
call fcn.004163b0
push dword [esp + 0x30]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
lea ebp, [edi + eax]
call fcn.00416360
mov edi, dword [esp + 0x2c]
mov edx, ebx
add eax, dword [esp + 0x128]
add edi, 0x2748774c
mov ecx, dword [esp + 0x40]
add edi, eax
add dword [esp + 0x30], edi
push ecx
mov ecx, ebp
call fcn.004163b0
push dword [esp + 0x50]
mov edx, dword [esp + 0x58]
add eax, edi
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x4c], eax
call fcn.00416360
mov edi, dword [esp + 0x3c]
mov edx, ebp
add eax, dword [esp + 0x134]
add edi, 0x34b0bcb5
mov ecx, dword [esp + 0x4c]
add edi, eax
add dword [esp + 0x48], edi
push ebx
call fcn.004163b0
push dword [esp + 0x5c]
mov edx, dword [esp + 0x40]
add eax, edi
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x64], eax
call fcn.00416360
mov edi, dword [esp + 0x5c]
add eax, dword [esp + 0x140]
add edi, 0x391c0cb3
mov edx, dword [esp + 0x54]
add edi, eax
mov ecx, dword [esp + 0x64]
add ebx, edi
push ebp
mov dword [esp + 0x60], ebx
call fcn.004163b0
push dword [esp + 0x44]
mov edx, dword [esp + 0x58]
add eax, edi
mov ecx, ebx
mov dword [esp + 0x50], eax
call fcn.00416360
mov edi, dword [esp + 0x68]
add eax, dword [esp + 0x14c]
add edi, 0x4ed8aa4a
push dword [esp + 0x5c]
mov edx, dword [esp + 0x70]
add edi, eax
mov ecx, dword [esp + 0x54]
add ebp, edi
mov dword [esp + 0x6c], ebp
call fcn.004163b0
push dword [esp + 0x5c]
add eax, edi
mov edx, ebx
mov ecx, ebp
mov dword [esp + 0x68], eax
call fcn.00416360
mov edi, dword [esp + 0x50]
add eax, dword [esp + 0x158]
add edi, 0x5b9cca4f
push dword [esp + 0x74]
mov edx, dword [esp + 0x5c]
add edi, eax
mov ecx, dword [esp + 0x6c]
add dword [esp + 0x68], edi
call fcn.004163b0
mov ecx, dword [esp + 0x68]
add eax, edi
push ebx
mov edx, ebp
mov dword [esp + 0x64], eax
call fcn.00416360
mov edi, dword [esp + 0x68]
add eax, dword [esp + 0x164]
add edi, 0x682e6ff3
push dword [esp + 0x60]
mov edx, dword [esp + 0x74]
add edi, eax
mov ecx, dword [esp + 0x68]
add dword [esp + 0x80], edi
call fcn.004163b0
add eax, edi
add esp, 0x40
mov dword [esp + 0x10], eax
cmp esi, 0x40
jge 0x4174d4
mov ecx, 0x40
lea ebp, [esp + esi*4 + 0x44]
sub ecx, esi
mov dword [esp + 0x20], ecx
jmp 0x417470
mov esi, dword [ebp]
mov edx, 0x13
mov ebx, dword [ebp - 0x34]
mov ecx, esi
call fcn.00416320
mov edx, 0x11
mov ecx, esi
mov edi, eax
call fcn.00416320
xor edi, eax
shr esi, 0xa
mov edx, 0x12
mov ecx, ebx
xor edi, esi
call fcn.00416320
mov edx, 7
mov ecx, ebx
mov esi, eax
call fcn.00416320
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]
dec dword [esp + 0x20]
mov dword [ebp + 4], edi
jne 0x417470
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x3c]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x40]
push ebp
call fcn.00416360
add eax, dword [esp + 0x130]
lea esi, [ebx + 0x748f82ee]
push dword [esp + 0x38]
mov edx, dword [esp + 0x30]
add esi, eax
mov ecx, dword [esp + 0x18]
add dword [esp + 0x2c], esi
call fcn.004163b0
mov ebx, dword [esp + 0x38]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x2c]
lea edi, [esi + eax]
push ebx
mov dword [esp + 0x2c], edi
call fcn.00416360
add eax, dword [esp + 0x13c]
lea esi, [ebp + 0x78a5636f]
push dword [esp + 0x34]
mov edx, dword [esp + 0x20]
add esi, eax
add dword [esp + 0x44], esi
mov ecx, edi
call fcn.004163b0
push dword [esp + 0x50]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x48]
lea ebp, [esi + eax]
mov dword [esp + 0x30], ebp
call fcn.00416360
mov esi, dword [esp + 0x148]
add ebx, 0x84c87814
push dword [esp + 0x24]
add esi, ebx
mov edx, edi
add esi, eax
mov ecx, ebp
add dword [esp + 0x40], esi
call fcn.004163b0
push dword [esp + 0x3c]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x44]
lea ebx, [esi + eax]
mov dword [esp + 0x48], ebx
call fcn.00416360
mov edx, dword [esp + 0x5c]
mov ecx, ebx
mov esi, dword [esp + 0x154]
add edx, 0x8cc70208
add esi, edx
mov edx, ebp
add esi, eax
add dword [esp + 0x2c], esi
push edi
call fcn.004163b0
push dword [esp + 0x54]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x34]
lea edi, [esi + eax]
mov dword [esp + 0x54], edi
call fcn.00416360
mov edx, dword [esp + 0x48]
mov ecx, edi
mov esi, dword [esp + 0x160]
add edx, 0x90befffa
add esi, edx
mov edx, ebx
add esi, eax
add dword [esp + 0x44], esi
push ebp
call fcn.004163b0
push dword [esp + 0x50]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x4c]
lea ebp, [esi + eax]
call fcn.00416360
mov esi, dword [esp + 0x16c]
mov edx, dword [esp + 0x60]
add edx, 0xa4506ceb
mov ecx, ebp
add esi, edx
mov edx, edi
add esi, eax
add dword [esp + 0x48], esi
push ebx
call fcn.004163b0
push dword [esp + 0x40]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
lea ebx, [esi + eax]
call fcn.00416360
mov edx, dword [esp + 0x5c]
mov ecx, ebx
mov esi, dword [esp + 0x178]
add edx, 0xbef9a3f7
add esi, edx
mov edx, ebp
add esi, eax
add dword [esp + 0x60], esi
push edi
call fcn.004163b0
push dword [esp + 0x58]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x68]
lea edi, [esi + eax]
call fcn.00416360
mov edx, dword [esp + 0x4c]
mov ecx, edi
mov esi, dword [esp + 0x184]
add edx, 0xc67178f2
add esi, edx
mov edx, ebx
push ebp
add esi, eax
call fcn.004163b0
mov ecx, dword [esp + 0x88]
add esp, 0x40
add eax, dword [esp + 0x44]
add eax, esi
add dword [ecx + 0x50], edi
add dword [ecx + 0x58], ebp
add dword [ecx + 0x54], ebx
mov dword [ecx + 0x4c], eax
mov eax, dword [ecx + 0x5c]
add eax, esi
add eax, dword [esp + 0x30]
mov dword [ecx + 0x5c], eax
mov eax, dword [esp + 0x2c]
add dword [ecx + 0x60], eax
mov eax, dword [esp + 0x1c]
add dword [ecx + 0x64], eax
mov eax, dword [esp + 0x20]
add dword [ecx + 0x68], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x13c
ret 4