Function at 0x417a20
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x134
mov eax, dword [0x65fde0]
xor eax, esp
mov dword [esp + 0x130], eax
push ebx
mov ebx, dword [esp + 0x13c]
push ebp
push esi
mov esi, ecx
mov eax, dword [esi + 0x4c]
mov ecx, dword [esi + 0x54]
mov edx, dword [esi + 0x58]
push edi
mov edi, dword [esi + 0x50]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x40]
xor ebp, ebp
mov dword [esp + 0x3c], esi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], edx
sub ebx, eax
lea esp, [esp]
lea ecx, [ebx + ebp*4]
mov ecx, dword [esp + ecx + 0x40]
call fcn.00417970
mov dword [esp + ebp*4 + 0x40], eax
inc ebp
cmp ebp, 0x10
jl 0x417a70
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0x60]
mov dword [esp + 0x34], ebp
mov ebp, dword [esi + 0x5c]
push ebx
mov dword [esp + 0x30], eax
push eax
mov eax, ebp
call fcn.004179a0
add eax, dword [esp + 0x48]
mov esi, dword [esi + 0x68]
mov edx, dword [esp + 0x20]
lea esi, [eax + esi + 0x428a2f98]
mov eax, dword [esp + 0x2c]
add dword [esp + 0x1c], esi
push edx
mov dword [esp + 0x1c], esi
call fcn.004179e0
mov esi, eax
mov eax, dword [esp + 0x38]
add esi, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x24]
push ebp
call fcn.004179a0
add eax, dword [esp + 0x58]
push edi
mov edi, dword [esp + 0x3c]
lea ebx, [eax + ebx + 0x71374491]
add dword [esp + 0x30], ebx
mov eax, esi
mov dword [esp + 0x28], ebx
call fcn.004179e0
mov ecx, dword [esp + 0x2c]
mov ebx, eax
mov eax, dword [esp + 0x30]
add ebx, dword [esp + 0x28]
push ebp
push ecx
call fcn.004179a0
mov edx, dword [esp + 0x68]
add edx, dword [esp + 0x4c]
lea eax, [eax + edx - 0x4a3f0431]
add dword [esp + 0x3c], eax
mov edx, edi
mov dword [esp + 0x30], eax
push edx
mov edi, esi
mov eax, ebx
call fcn.004179e0
mov ecx, dword [esp + 0x3c]
mov ebp, eax
mov eax, dword [esp + 0x38]
add ebp, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x44]
push ecx
call fcn.004179a0
mov ecx, dword [esp + 0x68]
mov ecx, dword [ecx + 0x5c]
mov edx, dword [esp + 0x78]
add edx, ecx
lea eax, [eax + edx - 0x164a245b]
add dword [esp + 0x50], eax
mov dword [esp + 0x3c], eax
push esi
mov edi, ebx
mov eax, ebp
call fcn.004179e0
add eax, dword [esp + 0x40]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x4c]
push edx
push eax
mov eax, dword [esp + 0x5c]
call fcn.004179a0
add eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x4c]
lea eax, [eax + ecx + 0x3956c25b]
mov dword [esp + 0x48], eax
add esi, eax
mov eax, dword [esp + 0x58]
push ebx
mov edi, ebp
call fcn.004179e0
add eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x60]
push edx
push eax
mov eax, esi
call fcn.004179a0
add eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x64]
lea eax, [eax + ecx + 0x59f111f1]
add esp, 0x44
mov dword [esp + 0x10], eax
add ebx, eax
mov eax, dword [esp + 0x14]
push ebp
call fcn.004179e0
add eax, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
push edx
mov dword [esp + 0x20], eax
push esi
mov eax, ebx
call fcn.004179a0
mov ecx, dword [esp + 0x64]
add ecx, dword [esp + 0x28]
lea eax, [eax + ecx - 0x6dc07d5c]
mov dword [esp + 0x1c], eax
add ebp, eax
mov eax, edi
mov edi, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x28]
call fcn.004179e0
add eax, dword [esp + 0x20]
push esi
mov dword [esp + 0x30], eax
push ebx
mov eax, ebp
call fcn.004179a0
mov ecx, dword [esp + 0x74]
add ecx, dword [esp + 0x3c]
lea eax, [eax + ecx - 0x54e3a12b]
add dword [esp + 0x38], eax
mov dword [esp + 0x28], eax
mov eax, edi
mov edi, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x38]
call fcn.004179e0
add eax, dword [esp + 0x2c]
push ebx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x40]
push ebp
call fcn.004179a0
mov ecx, dword [esp + 0x84]
add ecx, esi
lea eax, [eax + ecx - 0x27f85568]
add dword [esp + 0x38], eax
mov edx, edi
mov edi, dword [esp + 0x40]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x48]
push edx
call fcn.004179e0
mov esi, eax
mov eax, dword [esp + 0x48]
add esi, dword [esp + 0x38]
push ebp
push eax
mov eax, dword [esp + 0x44]
call fcn.004179a0
add eax, dword [esp + 0x94]
lea ebx, [eax + ebx + 0x12835b01]
add dword [esp + 0x48], ebx
mov ecx, edi
mov edi, dword [esp + 0x54]
push ecx
mov eax, esi
mov dword [esp + 0x44], ebx
call fcn.004179e0
mov edx, dword [esp + 0x54]
mov ebx, eax
mov eax, dword [esp + 0x48]
add ebx, dword [esp + 0x44]
push edx
push eax
mov eax, dword [esp + 0x54]
call fcn.004179a0
add eax, dword [esp + 0xa4]
mov ecx, edi
lea ebp, [eax + ebp + 0x243185be]
add dword [esp + 0x58], ebp
push ecx
mov edi, esi
mov eax, ebx
mov dword [esp + 0x50], ebp
call fcn.004179e0
mov edx, dword [esp + 0x54]
mov ebp, eax
mov eax, dword [esp + 0x58]
add ebp, dword [esp + 0x50]
add esp, 0x40
push edx
push eax
mov eax, dword [esp + 0x24]
call fcn.004179a0
add eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x28]
lea eax, [eax + ecx + 0x550c7dc3]
add dword [esp + 0x2c], eax
mov dword [esp + 0x18], eax
push esi
mov edi, ebx
mov eax, ebp
call fcn.004179e0
add eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
push edx
push eax
mov eax, dword [esp + 0x38]
call fcn.004179a0
add eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x28]
lea eax, [eax + ecx + 0x72be5d74]
mov dword [esp + 0x24], eax
add esi, eax
mov eax, dword [esp + 0x34]
push ebx
mov edi, ebp
call fcn.004179e0
add eax, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x3c]
push edx
push eax
mov eax, esi
call fcn.004179a0
mov ecx, dword [esp + 0x94]
add ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x40]
lea eax, [eax + ecx - 0x7f214e02]
mov dword [esp + 0x30], eax
add ebx, eax
mov eax, dword [esp + 0x34]
push ebp
call fcn.004179e0
add eax, dword [esp + 0x34]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x48]
push eax
push esi
mov eax, ebx
call fcn.004179a0
mov ecx, dword [esp + 0xa4]
add ecx, dword [esp + 0x48]
lea eax, [eax + ecx - 0x6423f959]
add ebp, eax
mov dword [esp + 0x3c], eax
mov eax, edi
mov edi, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x58], ebp
call fcn.004179e0
add eax, dword [esp + 0x40]
push esi
mov dword [esp + 0x50], eax
push ebx
mov eax, ebp
call fcn.004179a0
mov ecx, dword [esp + 0xb4]
add ecx, dword [esp + 0x5c]
lea eax, [eax + ecx - 0x3e640e8c]
add dword [esp + 0x58], eax
mov dword [esp + 0x48], eax
mov eax, edi
mov edi, dword [esp + 0x50]
push eax
mov eax, dword [esp + 0x58]
call fcn.004179e0
add eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x70]
add esp, 0x3c
mov dword [esp + 0x24], eax
cmp ecx, 0x18
jge 0x417ef7
mov edx, 0x18
sub edx, ecx
lea eax, [esp + ecx*4 + 0x38]
add ecx, edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], ecx
lea esp, [esp]
mov ecx, dword [eax - 0x34]
mov edi, dword [eax]
mov dword [esp + 0x2c], ecx
mov ecx, 0x13
mov eax, edi
call fcn.00417960
mov ebp, eax
mov ecx, 0x11
mov eax, edi
call fcn.00417960
xor ebp, eax
shr edi, 0xa
xor ebp, edi
mov edi, dword [esp + 0x2c]
mov ecx, 0x12
mov eax, edi
call fcn.00417960
mov dword [esp + 0x38], eax
mov ecx, 7
mov eax, edi
call fcn.00417960
mov ecx, dword [esp + 0x38]
xor ecx, eax
mov eax, edi
shr eax, 3
xor ecx, eax
mov eax, dword [esp + 0x10]
add ebp, ecx
add ebp, dword [eax - 0x38]
add eax, 4
add ebp, dword [eax - 0x18]
dec dword [esp + 0x30]
mov dword [eax + 4], ebp
mov dword [esp + 0x10], eax
jne 0x417e80
mov ebp, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
push ebx
push ebp
call fcn.004179a0
mov edx, dword [esp + 0x88]
mov edi, dword [esp + 0x24]
add edx, esi
lea eax, [eax + edx - 0x1b64963f]
add dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x30]
call fcn.004179e0
mov ecx, dword [esp + 0x2c]
mov esi, eax
mov eax, dword [esp + 0x20]
add esi, dword [esp + 0x1c]
push ebp
push ecx
call fcn.004179a0
mov edx, dword [esp + 0x98]
add edx, ebx
lea eax, [eax + edx - 0x1041b87a]
add dword [esp + 0x2c], eax
mov dword [esp + 0x24], eax
mov eax, edi
mov edi, dword [esp + 0x38]
push eax
mov eax, esi
call fcn.004179e0
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x2c]
mov ebx, eax
mov eax, dword [esp + 0x30]
add ebx, dword [esp + 0x28]
push ecx
push edx
call fcn.004179a0
add eax, dword [esp + 0xa8]
lea ebp, [eax + ebp + 0xfc19dc6]
add dword [esp + 0x3c], ebp
mov eax, edi
push eax
mov edi, esi
mov eax, ebx
mov dword [esp + 0x34], ebp
call fcn.004179e0
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov ebp, eax
mov eax, dword [esp + 0x40]
add ebp, dword [esp + 0x34]
push ecx
push edx
call fcn.004179a0
add eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x4c]
lea eax, [eax + ecx + 0x240ca1cc]
add dword [esp + 0x50], eax
mov dword [esp + 0x3c], eax
push esi
mov edi, ebx
mov eax, ebp
call fcn.004179e0
add eax, dword [esp + 0x40]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x4c]
push edx
push eax
mov eax, dword [esp + 0x5c]
call fcn.004179a0
add eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0x4c]
lea eax, [eax + ecx + 0x2de92c6f]
add esi, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x64], esi
push ebx
mov edi, ebp
mov eax, dword [esp + 0x5c]
call fcn.004179e0
add eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x60]
push edx
push eax
mov eax, esi
call fcn.004179a0
add eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x64]
lea eax, [eax + ecx + 0x4a7484aa]
add esp, 0x44
mov dword [esp + 0x10], eax
add ebx, eax
mov eax, dword [esp + 0x14]
push ebp
call fcn.004179e0
add eax, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
push edx
mov dword [esp + 0x20], eax
push esi
mov eax, ebx
call fcn.004179a0
add eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x28]
lea eax, [eax + ecx + 0x5cb0a9dc]
mov edx, edi
mov edi, dword [esp + 0x20]
add ebp, eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
push edx
mov dword [esp + 0x38], ebp
call fcn.004179e0
add eax, dword [esp + 0x20]
push esi
mov dword [esp + 0x30], eax
push ebx
mov eax, ebp
call fcn.004179a0
add eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x3c]
lea eax, [eax + ecx + 0x76f988da]
add dword [esp + 0x38], eax
mov edx, edi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x34]
push edx
call fcn.004179e0
mov ecx, dword [esp + 0x50]
mov ebp, eax
add ebp, dword [esp + 0x2c]
add esp, 0x1c
cmp ecx, 0x20
jge 0x418187
mov edx, 0x20
sub edx, ecx
lea eax, [esp + ecx*4 + 0x38]
add ecx, edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x34], ecx
nop
mov esi, dword [eax - 0x34]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
mov ecx, 0x12
mov eax, esi
call fcn.00417960
mov edi, eax
mov ecx, 7
mov eax, esi
call fcn.00417960
xor edi, eax
shr esi, 3
xor edi, esi
mov esi, dword [esp + 0x30]
mov ecx, 0x13
mov eax, esi
call fcn.00417960
mov dword [esp + 0x38], eax
mov ecx, 0x11
mov eax, esi
call fcn.00417960
mov ecx, dword [esp + 0x38]
xor ecx, eax
mov eax, esi
shr eax, 0xa
xor ecx, eax
mov eax, dword [esp + 0x24]
add edi, ecx
add edi, dword [eax - 0x38]
add eax, 4
add edi, dword [eax - 0x18]
dec dword [esp + 0x10]
mov dword [eax + 4], edi
mov dword [esp + 0x24], eax
jne 0x418110
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
push ebx
push ecx
call fcn.004179a0
mov edx, dword [esp + 0xa8]
mov edi, dword [esp + 0x24]
add edx, esi
lea eax, [eax + edx - 0x67c1aeae]
add dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
push eax
mov eax, ebp
call fcn.004179e0
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
mov esi, eax
mov eax, dword [esp + 0x20]
add esi, dword [esp + 0x1c]
push ecx
push edx
call fcn.004179a0
mov ecx, dword [esp + 0xb8]
add ecx, ebx
lea eax, [eax + ecx - 0x57ce3993]
add dword [esp + 0x2c], eax
mov edx, edi
mov dword [esp + 0x24], eax
push edx
mov edi, ebp
mov eax, esi
call fcn.004179e0
mov ecx, dword [esp + 0x2c]
mov ebx, eax
mov eax, dword [esp + 0x38]
add ebx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x34]
push ecx
call fcn.004179a0
mov edx, dword [esp + 0xc8]
add edx, dword [esp + 0x48]
push ebp
lea eax, [eax + edx - 0x4ffcd838]
add dword [esp + 0x40], eax
mov dword [esp + 0x34], eax
mov edi, esi
mov eax, ebx
call fcn.004179e0
add eax, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x3c]
push edx
push eax
mov eax, dword [esp + 0x48]
call fcn.004179a0
mov ecx, dword [esp + 0xd8]
add ecx, dword [esp + 0x4c]
push esi
lea eax, [eax + ecx - 0x40a68039]
mov dword [esp + 0x40], eax
add ebp, eax
mov eax, dword [esp + 0x58]
mov edi, ebx
call fcn.004179e0
add eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x48]
push eax
push ecx
mov eax, ebp
call fcn.004179a0
mov edx, dword [esp + 0xe8]
add edx, dword [esp + 0x4c]
push ebx
lea eax, [eax + edx - 0x391ff40d]
mov dword [esp + 0x4c], eax
add esi, eax
mov edi, dword [esp + 0x64]
mov eax, dword [esp + 0x5c]
call fcn.004179e0
add eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x58]
push edx
mov dword [esp + 0x54], eax
push ebp
mov eax, esi
call fcn.004179a0
mov ecx, dword [esp + 0xf8]
add ecx, dword [esp + 0x5c]
add esp, 0x44
lea eax, [eax + ecx - 0x2a586eb9]
mov dword [esp + 0x10], eax
add ebx, eax
mov eax, edi
mov edi, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x18]
call fcn.004179e0
add eax, dword [esp + 0x14]
push ebp
mov dword [esp + 0x20], eax
push esi
mov eax, ebx
call fcn.004179a0
add eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x28]
lea eax, [eax + ecx + 0x6ca6351]
add dword [esp + 0x34], eax
mov edx, edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
push edx
call fcn.004179e0
add eax, dword [esp + 0x20]
push esi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x3c]
push ebx
call fcn.004179a0
add eax, dword [esp + 0xd4]
lea ebp, [eax + ebp + 0x14292967]
add dword [esp + 0x38], ebp
mov eax, edi
mov edi, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x2c], ebp
call fcn.004179e0
mov ecx, dword [esp + 0x50]
mov ebp, eax
add ebp, dword [esp + 0x2c]
add esp, 0x1c
mov dword [esp + 0x24], ebp
cmp ecx, 0x28
jge 0x418417
mov edx, 0x28
sub edx, ecx
lea eax, [esp + ecx*4 + 0x38]
add ecx, edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x34], ecx
lea ecx, [ecx]
mov ecx, dword [eax - 0x34]
mov edi, dword [eax]
mov dword [esp + 0x30], ecx
mov ecx, 0x13
mov eax, edi
call fcn.00417960
mov ebp, eax
mov ecx, 0x11
mov eax, edi
call fcn.00417960
xor ebp, eax
shr edi, 0xa
xor ebp, edi
mov edi, dword [esp + 0x30]
mov ecx, 0x12
mov eax, edi
call fcn.00417960
mov dword [esp + 0x38], eax
mov ecx, 7
mov eax, edi
call fcn.00417960
mov ecx, dword [esp + 0x38]
xor ecx, eax
mov eax, edi
shr eax, 3
xor ecx, eax
mov eax, dword [esp + 0x2c]
add ebp, ecx
add ebp, dword [eax - 0x38]
add eax, 4
add ebp, dword [eax - 0x18]
dec dword [esp + 0x10]
mov dword [eax + 4], ebp
mov dword [esp + 0x2c], eax
jne 0x4183a0
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
push ebx
push edx
call fcn.004179a0
add eax, dword [esp + 0xc8]
mov edi, dword [esp + 0x24]
lea esi, [eax + esi + 0x27b70a85]
mov eax, dword [esp + 0x20]
add dword [esp + 0x1c], esi
push eax
mov eax, ebp
mov dword [esp + 0x1c], esi
call fcn.004179e0
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
mov esi, eax
mov eax, dword [esp + 0x20]
add esi, dword [esp + 0x1c]
push ecx
push edx
call fcn.004179a0
add eax, dword [esp + 0xd8]
lea ebx, [eax + ebx + 0x2e1b2138]
add dword [esp + 0x2c], ebx
mov eax, edi
push eax
mov edi, ebp
mov eax, esi
call fcn.004179e0
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x2c]
push ecx
lea ebp, [ebx + eax]
mov eax, dword [esp + 0x34]
push edx
call fcn.004179a0
add eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
lea eax, [eax + ecx + 0x4d2c6dfc]
add dword [esp + 0x3c], eax
mov dword [esp + 0x30], eax
push edx
mov edi, esi
mov eax, ebp
call fcn.004179e0
mov ecx, dword [esp + 0x3c]
mov ebx, eax
mov eax, dword [esp + 0x38]
add ebx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x44]
push ecx
call fcn.004179a0
add eax, dword [esp + 0xf8]
mov edx, dword [esp + 0x4c]
lea eax, [eax + edx + 0x53380d13]
add dword [esp + 0x50], eax
mov dword [esp + 0x3c], eax
push esi
mov edi, ebp
mov eax, ebx
call fcn.004179e0
add eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [esp + 0x58]
push ecx
call fcn.004179a0
add eax, dword [esp + 0x108]
mov edx, dword [esp + 0x4c]
lea eax, [eax + edx + 0x650a7354]
add esi, eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x64], esi
push ebp
mov edi, ebx
call fcn.004179e0
add eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x58]
push eax
push ecx
mov eax, esi
call fcn.004179a0
add eax, dword [esp + 0x118]
mov edx, dword [esp + 0x5c]
mov edi, dword [esp + 0x64]
lea eax, [eax + edx + 0x766a0abb]
add esp, 0x44
mov dword [esp + 0x10], eax
add ebp, eax
mov eax, dword [esp + 0x14]
push ebx
call fcn.004179e0
add eax, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
push eax
push esi
mov eax, ebp
call fcn.004179a0
mov ecx, dword [esp + 0xe4]
add ecx, dword [esp + 0x28]
lea eax, [eax + ecx - 0x7e3d36d2]
add ebx, eax
mov dword [esp + 0x1c], eax
mov eax, edi
mov edi, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x38], ebx
call fcn.004179e0
add eax, dword [esp + 0x20]
push esi
mov dword [esp + 0x30], eax
push ebp
mov eax, ebx
call fcn.004179a0
mov ecx, dword [esp + 0xf4]
add ecx, dword [esp + 0x3c]
lea eax, [eax + ecx - 0x6d8dd37b]
add dword [esp + 0x38], eax
mov dword [esp + 0x28], eax
mov eax, edi
mov edi, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x38]
call fcn.004179e0
mov ecx, dword [esp + 0x50]
mov ebx, eax
add ebx, dword [esp + 0x2c]
add esp, 0x1c
cmp ecx, 0x30
jge 0x4186a7
mov edx, 0x30
sub edx, ecx
lea eax, [esp + ecx*4 + 0x38]
add ecx, edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x34], ecx
mov edi, edi
mov ecx, dword [eax]
mov esi, dword [eax - 0x34]
mov dword [esp + 0x30], ecx
mov ecx, 0x12
mov eax, esi
call fcn.00417960
mov edi, eax
mov ecx, 7
mov eax, esi
call fcn.00417960
xor edi, eax
shr esi, 3
xor edi, esi
mov esi, dword [esp + 0x30]
mov ecx, 0x13
mov eax, esi
call fcn.00417960
mov dword [esp + 0x38], eax
mov ecx, 0x11
mov eax, esi
call fcn.00417960
mov ecx, dword [esp + 0x38]
xor ecx, eax
mov eax, esi
shr eax, 0xa
xor ecx, eax
mov eax, dword [esp + 0x24]
add edi, ecx
add edi, dword [eax - 0x38]
add eax, 4
add edi, dword [eax - 0x18]
dec dword [esp + 0x10]
mov dword [eax + 4], edi
mov dword [esp + 0x24], eax
jne 0x418630
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
push ebp
push edx
call fcn.004179a0
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
add ecx, esi
lea eax, [eax + ecx - 0x5d40175f]
add dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
push edx
mov eax, ebx
call fcn.004179e0
mov ecx, dword [esp + 0x2c]
mov esi, eax
mov eax, dword [esp + 0x34]
add esi, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x24]
push ecx
call fcn.004179a0
mov edx, dword [esp + 0xf8]
add edx, ebp
lea eax, [eax + edx - 0x57e599b5]
add dword [esp + 0x2c], eax
mov dword [esp + 0x24], eax
mov eax, edi
push eax
mov edi, ebx
mov eax, esi
call fcn.004179e0
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x2c]
mov ebp, eax
mov eax, dword [esp + 0x30]
add ebp, dword [esp + 0x28]
push ecx
push edx
call fcn.004179a0
mov ecx, dword [esp + 0x108]
add ecx, dword [esp + 0x48]
push ebx
lea eax, [eax + ecx - 0x3db47490]
add dword [esp + 0x40], eax
mov dword [esp + 0x34], eax
mov edi, esi
mov eax, ebp
call fcn.004179e0
add eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x44]
push ecx
call fcn.004179a0
mov edx, dword [esp + 0x118]
add edx, dword [esp + 0x4c]
push esi
lea eax, [eax + edx - 0x3893ae5d]
mov dword [esp + 0x40], eax
add ebx, eax
mov eax, dword [esp + 0x58]
mov edi, ebp
call fcn.004179e0
add eax, dword [esp + 0x40]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x4c]
push edx
push eax
mov eax, ebx
call fcn.004179a0
mov ecx, dword [esp + 0x128]
add ecx, dword [esp + 0x4c]
push ebp
lea eax, [eax + ecx - 0x2e6d17e7]
mov dword [esp + 0x4c], eax
add esi, eax
mov edi, dword [esp + 0x64]
mov eax, dword [esp + 0x5c]
call fcn.004179e0
add eax, dword [esp + 0x4c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x58]
push eax
push ebx
mov eax, esi
call fcn.004179a0
mov ecx, dword [esp + 0x138]
add ecx, dword [esp + 0x5c]
add esp, 0x44
lea eax, [eax + ecx - 0x2966f9dc]
mov dword [esp + 0x10], eax
add ebp, eax
mov eax, edi
mov edi, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x18]
call fcn.004179e0
add eax, dword [esp + 0x14]
push ebx
mov dword [esp + 0x20], eax
push esi
mov eax, ebp
call fcn.004179a0
mov ecx, dword [esp + 0x104]
add ecx, dword [esp + 0x28]
lea eax, [eax + ecx - 0xbf1ca7b]
add dword [esp + 0x34], eax
mov dword [esp + 0x1c], eax
mov eax, edi
mov edi, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x28]
call fcn.004179e0
add eax, dword [esp + 0x20]
push esi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x3c]
push ebp
call fcn.004179a0
add eax, dword [esp + 0x114]
mov ecx, edi
mov edi, dword [esp + 0x30]
lea ebx, [eax + ebx + 0x106aa070]
mov eax, dword [esp + 0x34]
add dword [esp + 0x38], ebx
push ecx
mov dword [esp + 0x2c], ebx
call fcn.004179e0
mov ecx, dword [esp + 0x50]
mov ebx, eax
add ebx, dword [esp + 0x2c]
add esp, 0x1c
mov dword [esp + 0x24], ebx
cmp ecx, 0x38
jge 0x418937
mov edx, 0x38
sub edx, ecx
lea eax, [esp + ecx*4 + 0x38]
add ecx, edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x34], ecx
lea ecx, [ecx]
mov edx, dword [eax - 0x34]
mov edi, dword [eax]
mov ecx, 0x13
mov eax, edi
mov dword [esp + 0x30], edx
call fcn.00417960
mov ebx, eax
mov ecx, 0x11
mov eax, edi
call fcn.00417960
xor ebx, eax
shr edi, 0xa
xor ebx, edi
mov edi, dword [esp + 0x30]
mov ecx, 0x12
mov eax, edi
call fcn.00417960
mov dword [esp + 0x38], eax
mov ecx, 7
mov eax, edi
call fcn.00417960
mov ecx, dword [esp + 0x38]
xor ecx, eax
mov eax, edi
shr eax, 3
xor ecx, eax
mov eax, dword [esp + 0x2c]
add ebx, ecx
add ebx, dword [eax - 0x38]
add eax, 4
add ebx, dword [eax - 0x18]
dec dword [esp + 0x10]
mov dword [eax + 4], ebx
mov dword [esp + 0x2c], eax
jne 0x4188c0
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
push ebp
push eax
mov eax, dword [esp + 0x28]
call fcn.004179a0
add eax, dword [esp + 0x108]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
lea esi, [eax + esi + 0x19a4c116]
add dword [esp + 0x1c], esi
push ecx
mov eax, ebx
mov dword [esp + 0x1c], esi
call fcn.004179e0
mov edx, dword [esp + 0x34]
mov esi, eax
mov eax, dword [esp + 0x2c]
add esi, dword [esp + 0x1c]
push edx
push eax
mov eax, dword [esp + 0x28]
call fcn.004179a0
add eax, dword [esp + 0x118]
mov ecx, edi
lea ebp, [eax + ebp + 0x1e376c08]
add dword [esp + 0x2c], ebp
push ecx
mov edi, ebx
mov eax, esi
call fcn.004179e0
mov edx, dword [esp + 0x38]
lea ebx, [ebp + eax]
mov eax, dword [esp + 0x2c]
push edx
push eax
mov eax, dword [esp + 0x38]
call fcn.004179a0
add eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
lea eax, [eax + ecx + 0x2748774c]
add dword [esp + 0x3c], eax
mov dword [esp + 0x30], eax
push edx
mov edi, esi
mov eax, ebx
call fcn.004179e0
mov ecx, dword [esp + 0x3c]
mov ebp, eax
mov eax, dword [esp + 0x38]
add ebp, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x44]
push ecx
call fcn.004179a0
add eax, dword [esp + 0x138]
mov edx, dword [esp + 0x4c]
lea eax, [eax + edx + 0x34b0bcb5]
add dword [esp + 0x50], eax
mov dword [esp + 0x3c], eax
push esi
mov edi, ebx
mov eax, ebp
call fcn.004179e0
add eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [esp + 0x58]
push ecx
call fcn.004179a0
add eax, dword [esp + 0x148]
mov edx, dword [esp + 0x4c]
lea eax, [eax + edx + 0x391c0cb3]
add esi, eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x64], esi
push ebx
mov edi, ebp
call fcn.004179e0
add eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x58]
push eax
push ecx
mov eax, esi
call fcn.004179a0
add eax, dword [esp + 0x158]
mov edx, dword [esp + 0x5c]
mov edi, dword [esp + 0x64]
lea eax, [eax + edx + 0x4ed8aa4a]
add esp, 0x44
mov dword [esp + 0x10], eax
add ebx, eax
mov eax, dword [esp + 0x14]
push ebp
call fcn.004179e0
add eax, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
push eax
push esi
mov eax, ebx
call fcn.004179a0
add eax, dword [esp + 0x124]
mov ecx, dword [esp + 0x28]
lea eax, [eax + ecx + 0x5b9cca4f]
mov edx, edi
mov edi, dword [esp + 0x20]
add ebp, eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
push edx
mov dword [esp + 0x38], ebp
call fcn.004179e0
add eax, dword [esp + 0x20]
push esi
mov dword [esp + 0x30], eax
push ebx
mov eax, ebp
call fcn.004179a0
add eax, dword [esp + 0x134]
mov ecx, dword [esp + 0x3c]
lea eax, [eax + ecx + 0x682e6ff3]
add dword [esp + 0x38], eax
mov edx, edi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x34]
push edx
call fcn.004179e0
mov ecx, dword [esp + 0x50]
mov ebp, eax
add ebp, dword [esp + 0x2c]
add esp, 0x1c
cmp ecx, 0x40
jge 0x418bc7
mov edx, 0x40
lea eax, [esp + ecx*4 + 0x38]
sub edx, ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x24], edx
lea esp, [esp]
mov esi, dword [eax - 0x34]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
mov ecx, 0x12
mov eax, esi
call fcn.00417960
mov edi, eax
mov ecx, 7
mov eax, esi
call fcn.00417960
xor edi, eax
shr esi, 3
xor edi, esi
mov esi, dword [esp + 0x30]
mov ecx, 0x13
mov eax, esi
call fcn.00417960
mov dword [esp + 0x38], eax
mov ecx, 0x11
mov eax, esi
call fcn.00417960
mov ecx, dword [esp + 0x38]
xor ecx, eax
mov eax, esi
shr eax, 0xa
xor ecx, eax
mov eax, dword [esp + 0x34]
add edi, ecx
add edi, dword [eax - 0x38]
add eax, 4
add edi, dword [eax - 0x18]
dec dword [esp + 0x24]
mov dword [eax + 4], edi
mov dword [esp + 0x34], eax
jne 0x418b50
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
push ebx
push ecx
call fcn.004179a0
add eax, dword [esp + 0x128]
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
lea esi, [eax + esi + 0x748f82ee]
add dword [esp + 0x1c], esi
push edx
mov eax, ebp
mov dword [esp + 0x1c], esi
call fcn.004179e0
mov ecx, dword [esp + 0x2c]
mov esi, eax
mov eax, dword [esp + 0x34]
add esi, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x24]
push ecx
call fcn.004179a0
add eax, dword [esp + 0x138]
mov edx, edi
lea ebx, [eax + ebx + 0x78a5636f]
add dword [esp + 0x2c], ebx
push edx
mov edi, ebp
mov eax, esi
mov dword [esp + 0x28], ebx
call fcn.004179e0
mov ecx, dword [esp + 0x2c]
mov ebx, eax
mov eax, dword [esp + 0x38]
add ebx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x34]
push ecx
call fcn.004179a0
mov edx, dword [esp + 0x148]
add edx, dword [esp + 0x48]
push ebp
lea eax, [eax + edx - 0x7b3787ec]
add dword [esp + 0x40], eax
mov dword [esp + 0x34], eax
mov edi, esi
mov eax, ebx
call fcn.004179e0
add eax, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x3c]
push edx
push eax
mov eax, dword [esp + 0x48]
call fcn.004179a0
mov ecx, dword [esp + 0x158]
add ecx, dword [esp + 0x4c]
push esi
lea eax, [eax + ecx - 0x7338fdf8]
mov dword [esp + 0x40], eax
add ebp, eax
mov eax, dword [esp + 0x58]
mov edi, ebx
call fcn.004179e0
add eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x48]
push eax
push ecx
mov eax, ebp
call fcn.004179a0
mov edx, dword [esp + 0x168]
add edx, dword [esp + 0x4c]
mov edi, dword [esp + 0x60]
lea eax, [eax + edx - 0x6f410006]
mov dword [esp + 0x48], eax
add esi, eax
mov eax, dword [esp + 0x58]
push ebx
call fcn.004179e0
add eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x58]
push edx
mov dword [esp + 0x54], eax
push ebp
mov eax, esi
call fcn.004179a0
mov ecx, dword [esp + 0x178]
add ecx, dword [esp + 0x5c]
add esp, 0x44
lea eax, [eax + ecx - 0x5baf9315]
mov dword [esp + 0x10], eax
add ebx, eax
mov eax, edi
mov edi, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x18]
call fcn.004179e0
add eax, dword [esp + 0x14]
push ebp
mov dword [esp + 0x20], eax
push esi
mov eax, ebx
call fcn.004179a0
mov ecx, dword [esp + 0x144]
add ecx, dword [esp + 0x28]
lea eax, [eax + ecx - 0x41065c09]
add dword [esp + 0x34], eax
mov dword [esp + 0x1c], eax
mov eax, edi
mov edi, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x28]
call fcn.004179e0
add eax, dword [esp + 0x20]
push esi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x3c]
push ebx
call fcn.004179a0
mov ecx, dword [esp + 0x154]
add ecx, ebp
mov edx, edi
mov edi, dword [esp + 0x30]
lea ebp, [eax + ecx - 0x398e870e]
mov eax, dword [esp + 0x34]
push edx
call fcn.004179e0
mov edx, dword [esp + 0x58]
mov ecx, eax
add ecx, dword [edx + 0x4c]
mov eax, edx
add ecx, ebp
mov dword [eax + 0x4c], ecx
mov ecx, dword [eax + 0x50]
add ecx, dword [esp + 0x38]
add esp, 0x1c
mov dword [eax + 0x50], ecx
mov ecx, dword [eax + 0x54]
add ecx, edi
mov dword [eax + 0x54], ecx
mov ecx, dword [eax + 0x58]
add ecx, dword [esp + 0x14]
pop edi
mov dword [eax + 0x58], ecx
mov ecx, dword [eax + 0x5c]
add ecx, ebp
add ecx, dword [esp + 0x1c]
mov dword [eax + 0x5c], ecx
mov ecx, dword [eax + 0x60]
add ecx, dword [esp + 0x24]
mov dword [eax + 0x60], ecx
mov ecx, dword [eax + 0x64]
add ecx, ebx
mov dword [eax + 0x64], ecx
mov ecx, dword [eax + 0x68]
add ecx, esi
pop esi
mov dword [eax + 0x68], ecx
pop ebp
mov ecx, dword [esp + 0x134]
pop ebx
xor ecx, esp
call fcn.005b6c8b
add esp, 0x134
ret 4