Function at 0x416ab0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x4fc
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x474], eax
mov eax, dword [ebp + 0x10]
mov esi, dword [edx + 0xc4]
mov ecx, dword [ebp + 8]
add eax, esi
mov dword [edx + 0xc4], eax
cmp eax, dword [ebp + 0x10]
setb al
and eax, 0xff
mov ebx, dword [ecx + 0xc8]
mov edx, eax
mov edi, dword [ecx + 0xcc]
add edx, ebx
mov esi, dword [ecx + 0xd0]
cmp eax, edx
mov dword [ecx + 0xc8], edx
seta al
and eax, 0xff
mov edx, eax
add edx, edi
cmp edx, eax
mov dword [ecx + 0xcc], edx
setb al
and eax, 0xff
mov edx, dword [ecx + 0xc0]
add esi, eax
test edx, edx
mov dword [ecx + 0xd0], esi
jne 0x418857
lea esi, [ecx + 0x40]
mov dword [ebp - 0x498], esi
cmp dword [ebp + 0x10], 0x7f
jle 0x418828
mov ecx, dword [ebp + 8]
lea esi, [ebp - 0x98]
add ecx, 0x40
mov dword [ebp - 0x4f4], esi
mov dword [ebp - 0x498], ecx
mov ebx, pe_nt_image_headers32
mov eax, dword [ebp - 0x498]
mov esi, ebx
add eax, edx
sub esi, edx
mov edx, esi
push esi
push edx
mov ecx, dword [ebp - 0x474]
push ecx
push eax
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0xc0]
mov edi, dword [ebp - 0x474]
sub ebx, edx
mov esi, dword [ebp + 0x10]
add edi, ebx
sub esi, ebx
mov dword [ebp - 0x474], edi
mov dword [ebp + 0x10], esi
mov ebx, 1
add esp, 0x10
lea esi, [esi]
mov edx, dword [ebp + 8]
xor ecx, ecx
xor eax, eax
mov esi, edx
mov cl, byte [edx + ebx*8 + 0x3c]
mov al, byte [edx + ebx*8 + 0x3d]
shl eax, 0x10
shl ecx, 0x18
or ecx, eax
xor eax, eax
mov al, byte [edx + ebx*8 + 0x3f]
or ecx, eax
xor eax, eax
mov al, byte [edx + ebx*8 + 0x3e]
xor edx, edx
shl eax, 8
mov dl, byte [esi + ebx*8 + 0x38]
shl edx, 0x18
or ecx, eax
xor eax, eax
mov al, byte [esi + ebx*8 + 0x39]
shl eax, 0x10
or edx, eax
xor eax, eax
mov al, byte [esi + ebx*8 + 0x3b]
or edx, eax
xor eax, eax
mov al, byte [esi + ebx*8 + 0x3a]
mov dword [ebp + ebx*8 - 0x90], ecx
shl eax, 8
or edx, eax
mov dword [ebp + ebx*8 - 0x94], edx
inc ebx
cmp ebx, 0x11
jne 0x416bb0
mov eax, dword [ebp - 0x88]
mov ecx, 2
mov dword [ebp - 0x308], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x30c], eax
mov edx, dword [ebp + ecx*8 - 0x94]
mov eax, dword [ebp + ecx*8 - 0x90]
mov dword [ebp + ecx*8 - 0x310], eax
mov dword [ebp + ecx*8 - 0x314], edx
inc ecx
cmp ecx, 0x11
jne 0x416c34
lea eax, [ebp - 0x298]
mov dword [ebp - 0x384], eax
mov ecx, dword [ebp - 0x384]
mov edx, dword [ebp - 0x384]
mov ecx, dword [ecx - 4]
mov edx, dword [edx]
mov eax, ecx
mov dword [ebp - 0x3d4], edx
shr eax, 0x1d
mov esi, dword [ebp - 0x3d4]
shl edx, 3
mov dword [ebp - 0x3d8], ecx
shl esi, 0xd
or edx, eax
mov dword [ebp - 0x478], edx
mov eax, ecx
mov edx, dword [ebp - 0x3d4]
mov ebx, dword [ebp - 0x478]
shr edx, 0x13
shl eax, 0xd
or eax, edx
mov edx, dword [ebp - 0x3d4]
shr edx, 0x1d
xor ebx, eax
mov eax, ecx
mov dword [ebp - 0x478], ebx
shr eax, 0x13
or esi, eax
mov eax, ecx
shl eax, 3
or eax, edx
xor esi, eax
mov eax, dword [ebp - 0x384]
mov dword [ebp - 0x47c], esi
mov ecx, dword [eax - 0x68]
mov esi, dword [eax - 0x6c]
mov edi, esi
mov eax, ecx
shr eax, 8
mov edx, ecx
shl edi, 0x18
mov ebx, ecx
shr edx, 1
or edi, eax
shl ebx, 0x1f
mov eax, esi
shl eax, 0x1f
or eax, edx
mov edx, ecx
shr edx, 7
xor edi, eax
shl ecx, 0x18
mov eax, esi
shl eax, 0x19
or eax, edx
mov edx, dword [ebp - 0x3d4]
xor edi, eax
mov eax, esi
shr eax, 1
or ebx, eax
mov eax, esi
shr eax, 8
or ecx, eax
mov eax, dword [ebp - 0x3d8]
shl eax, 0x1a
xor ebx, ecx
shr edx, 6
shr esi, 7
mov dword [ebp - 0x3d4], edx
mov ecx, dword [ebp - 0x3d4]
mov edx, dword [ebp - 0x478]
or eax, ecx
mov ecx, dword [ebp - 0x384]
xor edx, eax
mov eax, dword [ebp - 0x384]
mov dword [ebp - 0x478], edx
mov ecx, dword [ecx - 0x28]
mov edx, dword [ebp - 0x478]
mov dword [ebp - 0x4b4], ecx
add edx, edi
xor ebx, esi
mov dword [ebp - 0x4f8], edx
add edx, ecx
mov dword [ebp - 0x4fc], edx
mov edx, dword [eax - 0x2c]
mov ecx, dword [ebp - 0x4fc]
add ecx, dword [eax - 0x70]
mov dword [ebp - 0x3dc], ecx
mov dword [eax + 0x10], ecx
mov ecx, dword [eax - 0x74]
mov eax, dword [ebp - 0x3d8]
shr eax, 6
add edx, ecx
mov dword [ebp - 0x3d8], eax
mov ecx, dword [ebp - 0x47c]
mov eax, dword [ebp - 0x3d8]
mov esi, dword [ebp - 0x384]
xor ecx, eax
mov dword [ebp - 0x47c], ecx
mov ecx, dword [ebp - 0x4fc]
mov eax, dword [ebp - 0x47c]
add edx, eax
add edx, ebx
cmp edi, dword [ebp - 0x4f8]
seta al
and eax, 0xff
add edx, eax
cmp dword [ebp - 0x4b4], ecx
seta al
and eax, 0xff
add edx, eax
mov eax, dword [ebp - 0x3dc]
cmp eax, dword [esi - 0x70]
setb al
and eax, 0xff
add edx, eax
mov dword [esi + 0xc], edx
add esi, 8
mov edx, dword [ebp - 0x4f4]
mov dword [ebp - 0x384], esi
cmp esi, edx
jne 0x416c62
mov ecx, dword [ebp + 8]
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov ecx, dword [ecx + 4]
mov esi, dword [esi]
mov dword [ebp - 0x310], ecx
mov dword [ebp - 0x314], esi
mov ecx, dword [ebp + 8]
mov esi, dword [ebp + 8]
mov edx, dword [edx + 8]
mov eax, dword [eax + 0xc]
mov esi, dword [esi + 0x10]
mov ecx, dword [ecx + 0x14]
mov dword [ebp - 0x3c4], eax
mov dword [ebp - 0x490], edx
mov dword [ebp - 0x3c8], edx
mov dword [ebp - 0x3bc], ecx
mov dword [ebp - 0x494], esi
mov dword [ebp - 0x3c0], esi
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov esi, dword [ebp + 8]
mov edx, dword [edx + 0x18]
mov eax, dword [eax + 0x1c]
mov ecx, dword [ecx + 0x24]
mov esi, dword [esi + 0x20]
mov dword [ebp - 0x3b4], eax
mov dword [ebp - 0x49c], edx
mov dword [ebp - 0x3b8], edx
mov dword [ebp - 0x3ac], ecx
mov dword [ebp - 0x4a0], esi
mov dword [ebp - 0x3b0], esi
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov esi, dword [ebp + 8]
mov edx, dword [edx + 0x28]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x3a4], eax
mov dword [ebp - 0x4a4], edx
mov dword [ebp - 0x3a8], edx
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov esi, dword [esi + 0x30]
mov ecx, dword [ecx + 0x34]
mov dword [ebp - 0x4a8], esi
mov edx, dword [edx + 0x38]
mov dword [ebp - 0x39c], ecx
mov dword [ebp - 0x3a0], esi
mov eax, dword [eax + 0x3c]
mov ecx, dword [ebp - 0x314]
mov esi, dword [ebp - 0x310]
mov dword [ebp - 0x394], eax
mov dword [ebp - 0x4ac], edx
mov dword [ebp - 0x398], edx
mov dword [ebp - 0x3d0], ecx
mov dword [ebp - 0x3cc], esi
mov dword [ebp - 0x388], 8
mov ecx, dword [ebp - 0x3b0]
mov eax, dword [ebp - 0x3ac]
shr eax, 0x12
mov edx, dword [ebp - 0x3ac]
shl ecx, 0xe
mov esi, dword [ebp - 0x3ac]
or ecx, eax
mov eax, dword [ebp - 0x3b0]
shr edx, 0xe
mov edi, dword [ebp - 0x3ac]
shl eax, 0x12
mov ebx, dword [ebp - 0x39c]
or eax, edx
mov edx, dword [ebp - 0x3b0]
xor ecx, eax
mov eax, dword [ebp - 0x3b0]
shr eax, 0x12
xor edi, 0xffffffff
shl esi, 0xe
and edi, ebx
or esi, eax
mov eax, dword [ebp - 0x3ac]
shr edx, 0xe
mov ebx, dword [ebp - 0x394]
shl eax, 0x12
or eax, edx
mov edx, dword [ebp - 0x3ac]
xor esi, eax
mov eax, dword [ebp - 0x3a4]
and eax, edx
mov edx, dword [ebp - 0x3b0]
shr edx, 9
xor edi, eax
mov eax, dword [ebp - 0x3ac]
shl eax, 0x17
or eax, edx
mov edx, dword [ebp - 0x388]
xor ecx, eax
mov eax, dword [ebp - 0x388]
add ecx, edi
mov edx, dword [ebp + edx*8 - 0x348]
mov eax, dword [eax*8 + 0x420264]
mov dword [ebp - 0x4b0], edx
mov dword [ebp - 0x4b8], eax
add eax, ecx
mov dword [ebp - 0x3e0], eax
add eax, edx
mov dword [ebp - 0x3e4], eax
add eax, ebx
mov dword [ebp - 0x3e8], eax
mov eax, dword [ebp - 0x388]
mov edx, dword [ebp + eax*8 - 0x34c]
mov ebx, dword [eax*8 + 0x420260]
add ebx, edx
mov eax, dword [ebp - 0x398]
mov edx, dword [ebp - 0x3e8]
add ebx, eax
cmp dword [ebp - 0x394], edx
mov edx, dword [ebp - 0x3a0]
seta al
and eax, 0xff
add ebx, eax
mov eax, dword [ebp - 0x3b0]
xor eax, 0xffffffff
and eax, edx
mov edx, dword [ebp - 0x3a8]
and edx, dword [ebp - 0x3b0]
xor eax, edx
mov edx, dword [ebp - 0x3ac]
shr edx, 9
add ebx, eax
mov eax, dword [ebp - 0x3b0]
shl eax, 0x17
or eax, edx
mov edx, dword [ebp - 0x3cc]
xor esi, eax
add ebx, esi
cmp edi, ecx
seta al
and eax, 0xff
mov ecx, dword [ebp - 0x3e0]
add ebx, eax
cmp dword [ebp - 0x4b8], ecx
seta al
and eax, 0xff
mov esi, dword [ebp - 0x3e4]
add ebx, eax
cmp dword [ebp - 0x4b0], esi
seta al
and eax, 0xff
mov edi, dword [ebp - 0x3cc]
shl edi, 0x1e
add ebx, eax
shr edx, 0x1c
mov eax, dword [ebp - 0x3d0]
shr eax, 2
or edi, eax
mov eax, dword [ebp - 0x3d0]
shl eax, 4
or eax, edx
mov edx, dword [ebp - 0x3d0]
shr edx, 7
xor edi, eax
mov eax, dword [ebp - 0x3cc]
shl eax, 0x19
or eax, edx
xor edi, eax
mov eax, dword [ebp - 0x3d0]
shl eax, 0x1e
mov dword [ebp - 0x480], eax
mov eax, dword [ebp - 0x3cc]
mov ecx, dword [ebp - 0x480]
mov edx, dword [ebp - 0x3d0]
shr eax, 2
mov esi, dword [ebp - 0x3c0]
shr edx, 0x1c
or ecx, eax
mov eax, dword [ebp - 0x3cc]
mov dword [ebp - 0x480], ecx
shl eax, 4
mov ecx, dword [ebp - 0x3c8]
or eax, edx
mov edx, dword [ebp - 0x480]
xor edx, eax
mov eax, dword [ebp - 0x3cc]
mov dword [ebp - 0x480], edx
mov edx, dword [ebp - 0x3c4]
and edx, eax
mov eax, dword [ebp - 0x3d0]
and ecx, eax
mov eax, dword [ebp - 0x3cc]
mov dword [ebp - 0x3f0], ecx
mov ecx, dword [ebp - 0x3bc]
and ecx, eax
mov eax, dword [ebp - 0x3d0]
and esi, eax
mov eax, dword [ebp - 0x3f0]
xor ecx, edx
xor esi, eax
mov dword [ebp - 0x3ec], edx
mov eax, dword [ebp - 0x3bc]
mov edx, dword [ebp - 0x3c4]
and eax, edx
mov edx, dword [ebp - 0x3b4]
xor ecx, eax
mov eax, dword [ebp - 0x3e8]
add eax, edx
mov edx, dword [ebp - 0x3b8]
cmp dword [ebp - 0x3b4], eax
mov dword [ebp - 0x348], eax
seta al
and eax, 0xff
lea ecx, [edi + ecx]
add eax, edx
mov edx, dword [ebp - 0x3e8]
add eax, ebx
add edx, ecx
mov dword [ebp - 0x3f4], edx
mov dword [ebp - 0x364], eax
mov edx, dword [ebp - 0x3cc]
mov eax, dword [ebp - 0x3d0]
shr edx, 7
shl eax, 0x19
or eax, edx
mov edx, dword [ebp - 0x480]
xor edx, eax
mov eax, dword [ebp - 0x3c0]
mov dword [ebp - 0x480], edx
mov edx, dword [ebp - 0x3c8]
and eax, edx
mov edx, dword [ebp - 0x480]
xor esi, eax
add edx, esi
cmp edi, ecx
seta al
and eax, 0xff
mov ecx, dword [ebp - 0x3f4]
cmp dword [ebp - 0x3e8], ecx
lea eax, [edx + eax]
lea edx, [eax + ebx]
seta al
and eax, 0xff
add edx, eax
mov dword [ebp - 0x3f8], edx
mov ecx, dword [ebp - 0x364]
mov eax, dword [ebp - 0x348]
mov edx, dword [ebp - 0x348]
shr eax, 0x12
mov esi, dword [ebp - 0x364]
shl ecx, 0xe
mov edi, dword [ebp - 0x348]
or ecx, eax
mov eax, dword [ebp - 0x364]
shr edx, 0xe
mov ebx, dword [ebp - 0x3a4]
shl eax, 0x12
xor edi, 0xffffffff
or eax, edx
mov edx, dword [ebp - 0x348]
xor ecx, eax
mov eax, dword [ebp - 0x348]
shl eax, 0xe
and edi, ebx
shr esi, 0x12
mov ebx, dword [ebp - 0x39c]
shl edx, 0x12
or esi, eax
mov eax, dword [ebp - 0x364]
shr eax, 0xe
or eax, edx
mov edx, dword [ebp - 0x3ac]
xor esi, eax
mov eax, dword [ebp - 0x348]
and eax, edx
mov edx, dword [ebp - 0x348]
shl edx, 0x17
xor edi, eax
mov eax, dword [ebp - 0x364]
shr eax, 9
or eax, edx
mov edx, dword [ebp - 0x388]
xor ecx, eax
mov eax, dword [ebp - 0x388]
add ecx, edi
mov edx, dword [ebp + edx*8 - 0x340]
mov eax, dword [eax*8 + 0x42026c]
mov dword [ebp - 0x4c0], edx
mov dword [ebp - 0x4bc], eax
add eax, ecx
mov dword [ebp - 0x3fc], eax
add eax, edx
mov dword [ebp - 0x400], eax
add eax, ebx
mov dword [ebp - 0x404], eax
mov eax, dword [ebp - 0x388]
mov edx, dword [ebp + eax*8 - 0x344]
mov ebx, dword [eax*8 + str.LwH]
add ebx, edx
mov eax, dword [ebp - 0x3a0]
mov edx, dword [ebp - 0x404]
add ebx, eax
cmp dword [ebp - 0x39c], edx
mov edx, dword [ebp - 0x3a8]
seta al
and eax, 0xff
add ebx, eax
mov eax, dword [ebp - 0x364]
xor eax, 0xffffffff
and eax, edx
mov edx, dword [ebp - 0x364]
and edx, dword [ebp - 0x3b0]
xor eax, edx
mov edx, dword [ebp - 0x348]
shr edx, 9
add ebx, eax
mov eax, dword [ebp - 0x364]
shl eax, 0x17
or eax, edx
mov edx, dword [ebp - 0x3f4]
xor esi, eax
add ebx, esi
cmp edi, ecx
seta al
and eax, 0xff
mov ecx, dword [ebp - 0x3fc]
add ebx, eax
cmp dword [ebp - 0x4bc], ecx
seta al
and eax, 0xff
mov esi, dword [ebp - 0x400]
add ebx, eax
cmp dword [ebp - 0x4c0], esi
seta al
and eax, 0xff
mov edi, dword [ebp - 0x3f8]
shr edi, 2
add ebx, eax
shr edx, 0x1c
mov eax, dword [ebp - 0x3f4]
shl eax, 0x1e
or edi, eax
mov eax, dword [ebp - 0x3f8]
shl eax, 4
or eax, edx
mov edx, dword [ebp - 0x3f4]
shl edx, 0x19
xor edi, eax
mov eax, dword [ebp - 0x3f8]
shr eax, 7
or eax, edx
xor edi, eax
mov eax, dword [ebp - 0x3f8]
shl eax, 0x1e
mov dword [ebp - 0x484], eax
mov eax, dword [ebp - 0x3f4]
mov ecx, dword [ebp - 0x484]
mov edx, dword [ebp - 0x3f4]
shr eax, 2
mov esi, dword [ebp - 0x3f8]
shl edx, 4
or ecx, eax
mov eax, dword [ebp - 0x3f8]
mov dword [ebp - 0x484], ecx
shr eax, 0x1c
mov ecx, dword [ebp - 0x3f8]
or eax, edx
mov edx, dword [ebp - 0x484]
xor edx, eax
mov eax, dword [ebp - 0x3cc]
mov dword [ebp - 0x484], edx
mov edx, dword [ebp - 0x3f4]
and edx, eax
mov eax, dword [ebp - 0x3d0]
and ecx, eax
mov eax, dword [ebp - 0x3c4]
mov dword [ebp - 0x40c], ecx
mov ecx, dword [ebp - 0x3f4]
and ecx, eax
mov eax, dword [ebp - 0x3c8]
and esi, eax
mov eax, dword [ebp - 0x40c]
xor ecx, edx
xor esi, eax
mov eax, dword [ebp - 0x3ec]
mov dword [ebp - 0x408], edx
xor ecx, eax
mov edx, dword [ebp - 0x3bc]
mov eax, dword [ebp - 0x404]
add eax, edx
mov edx, dword [ebp - 0x3c0]
cmp dword [ebp - 0x3bc], eax
mov dword [ebp - 0x344], eax
seta al
and eax, 0xff
lea ecx, [edi + ecx]
add eax, edx
mov edx, dword [ebp - 0x404]
add eax, ebx
add edx, ecx
mov dword [ebp - 0x320], edx
mov dword [ebp - 0x360], eax
mov edx, dword [ebp - 0x3f4]
mov eax, dword [ebp - 0x3f8]
shr edx, 7
shl eax, 0x19
or eax, edx
mov edx, dword [ebp - 0x484]
xor edx, eax
mov eax, dword [ebp - 0x3f0]
mov dword [ebp - 0x484], edx
xor esi, eax
mov eax, dword [ebp - 0x484]
add eax, esi
cmp edi, ecx
mov ecx, dword [ebp - 0x320]
lea edx, [eax + ebx]
seta al
and eax, 0xff
add edx, eax
cmp dword [ebp - 0x404], ecx
seta al
and eax, 0xff
add edx, eax
mov dword [ebp - 0x410], edx
mov ecx, dword [ebp - 0x360]
mov eax, dword [ebp - 0x344]
mov edx, dword [ebp - 0x344]
shr eax, 0x12
mov esi, dword [ebp - 0x360]
shl ecx, 0xe
mov edi, dword [ebp - 0x344]
or ecx, eax
mov eax, dword [ebp - 0x360]
shr edx, 0xe
mov ebx, dword [ebp - 0x3ac]
shl eax, 0x12
xor edi, 0xffffffff
or eax, edx
mov edx, dword [ebp - 0x344]
xor ecx, eax
mov eax, dword [ebp - 0x344]
shl eax, 0xe
and edi, ebx
shr esi, 0x12
mov ebx, dword [ebp - 0x3a4]
shl edx, 0x12
or esi, eax
mov eax, dword [ebp - 0x360]
shr eax, 0xe
or eax, edx
mov edx, dword [ebp - 0x348]
xor esi, eax
mov eax, dword [ebp - 0x344]
and eax, edx
mov edx, dword [ebp - 0x344]
shl edx, 0x17
xor edi, eax
mov eax, dword [ebp - 0x360]
shr eax, 9
or eax, edx
mov edx, dword [ebp - 0x388]
xor ecx, eax
mov eax, dword [ebp - 0x388]
add ecx, edi
mov edx, dword [ebp + edx*8 - 0x338]
mov eax, dword [eax*8 + 0x420274]
mov dword [ebp - 0x4c8], edx
mov dword [ebp - 0x4c4], eax
add eax, ecx
mov dword [ebp - 0x414], eax
add eax, edx
mov dword [ebp - 0x418], eax
add eax, ebx
mov dword [ebp - 0x41c], eax
mov eax, dword [ebp - 0x388]
mov edx, dword [ebp + eax*8 - 0x33c]
mov ebx, dword [eax*8 + 0x420270]
add ebx, edx
mov eax, dword [ebp - 0x3a8]
mov edx, dword [ebp - 0x41c]
add ebx, eax
cmp dword [ebp - 0x3a4], edx
mov edx, dword [ebp - 0x3b0]
seta al
and eax, 0xff
add ebx, eax
mov eax, dword [ebp - 0x360]
xor eax, 0xffffffff
and eax, edx
mov edx, dword [ebp - 0x360]
and edx, dword [ebp - 0x364]
xor eax, edx
mov edx, dword [ebp - 0x344]
shr edx, 9
add ebx, eax
mov eax, dword [ebp - 0x360]
shl eax, 0x17
or eax, edx
mov edx, dword [ebp - 0x320]
xor esi, eax
add ebx, esi
cmp edi, ecx
seta al
and eax, 0xff
mov ecx, dword [ebp - 0x414]
add ebx, eax
cmp dword [ebp - 0x4c4], ecx
seta al
and eax, 0xff
mov esi, dword [ebp - 0x418]
add ebx, eax
cmp dword [ebp - 0x4c8], esi
seta al
and eax, 0xff
mov edi, dword [ebp - 0x410]
shr edi, 2
add ebx, eax
shr edx, 0x1c
mov eax, dword [ebp - 0x320]
shl eax, 0x1e
or edi, eax
mov eax, dword [ebp - 0x410]
shl eax, 4
or eax, edx
mov edx, dword [ebp - 0x320]
shl edx, 0x19
xor edi, eax
mov eax, dword [ebp - 0x410]
shr eax, 7
or eax, edx
xor edi, eax
mov eax, dword [ebp - 0x410]
shl eax, 0x1e
mov dword [ebp - 0x488], eax
mov eax, dword [ebp - 0x320]
mov ecx, dword [ebp - 0x488]
mov edx, dword [ebp - 0x320]
shr eax, 2
mov esi, dword [ebp - 0x410]
shl edx, 4
or ecx, eax
mov eax, dword [ebp - 0x410]
mov dword [ebp - 0x488], ecx
shr eax, 0x1c
mov ecx, dword [ebp - 0x410]
or eax, edx
mov edx, dword [ebp - 0x488]
xor edx, eax
mov eax, dword [ebp - 0x3f4]
mov dword [ebp - 0x488], edx
mov edx, dword [ebp - 0x320]
and edx, eax
mov eax, dword [ebp - 0x3f8]
and ecx, eax
mov eax, dword [ebp - 0x3cc]
mov dword [ebp - 0x424], ecx
mov ecx, dword [ebp - 0x320]
and ecx, eax
mov eax, dword [ebp - 0x3d0]
and esi, eax
mov eax, dword [ebp - 0x424]
xor ecx, edx
xor esi, eax
mov eax, dword [ebp - 0x408]
mov dword [ebp - 0x420], edx
xor ecx, eax
mov edx, dword [ebp - 0x3c4]
mov eax, dword [ebp - 0x41c]
add eax, edx
mov edx, dword [ebp - 0x3c8]
cmp dword [ebp - 0x3c4], eax
mov dword [ebp - 0x340], eax
seta al
and eax, 0xff
lea ecx, [edi + ecx]
add eax, edx
mov edx, dword [ebp - 0x41c]
add eax, ebx
add edx, ecx
mov dword [ebp - 0x31c], edx
mov dword [ebp - 0x35c], eax
mov edx, dword [ebp - 0x320]
mov eax, dword [ebp - 0x410]
shr edx, 7
shl eax, 0x19
or eax, edx
mov edx, dword [ebp - 0x488]
xor edx, eax
mov eax, dword [ebp - 0x40c]
mov dword [ebp - 0x488], edx
xor esi, eax
mov eax, dword [ebp - 0x488]
add eax, esi
cmp edi, ecx
mov ecx, dword [ebp - 0x31c]
lea edx, [eax + ebx]
seta al
and eax, 0xff
add edx, eax
cmp dword [ebp - 0x41c], ecx
seta al
and eax, 0xff
add edx, eax
mov dword [ebp - 0x428], edx
mov ecx, dword [ebp - 0x35c]
mov eax, dword [ebp - 0x340]
mov edx, dword [ebp - 0x340]
shr eax, 0x12
mov esi, dword [ebp - 0x35c]
shl ecx, 0xe
mov edi, dword [ebp - 0x340]
or ecx, eax
mov eax, dword [ebp - 0x35c]
shr edx, 0xe
mov ebx, dword [ebp - 0x348]
shl eax, 0x12
xor edi, 0xffffffff
or eax, edx
mov edx, dword [ebp - 0x340]
xor ecx, eax
mov eax, dword [ebp - 0x340]
shl eax, 0xe
and edi, ebx
shr esi, 0x12
mov ebx, dword [ebp - 0x3ac]
shl edx, 0x12
or esi, eax
mov eax, dword [ebp - 0x35c]
shr eax, 0xe
or eax, edx
mov edx, dword [ebp - 0x344]
xor esi, eax
mov eax, dword [ebp - 0x340]
and eax, edx
mov edx, dword [ebp - 0x340]
shl edx, 0x17
xor edi, eax
mov eax, dword [ebp - 0x35c]
shr eax, 9
or eax, edx
mov edx, dword [ebp - 0x388]
xor ecx, eax
mov eax, dword [ebp - 0x388]
add ecx, edi
mov edx, dword [ebp + edx*8 - 0x330]
mov eax, dword [eax*8 + 0x42027c]
mov dword [ebp - 0x4d0], edx
mov dword [ebp - 0x4cc], eax
add eax, ecx
mov dword [ebp - 0x42c], eax
add eax, edx
mov dword [ebp - 0x430], eax
add eax, ebx
mov dword [ebp - 0x434], eax
mov eax, dword [ebp - 0x388]
mov edx, dword [ebp + eax*8 - 0x334]
mov ebx, dword [eax*8 + 0x420278]
add ebx, edx
mov eax, dword [ebp - 0x3b0]
mov edx, dword [ebp - 0x434]
add ebx, eax
cmp dword [ebp - 0x3ac], edx
mov edx, dword [ebp - 0x364]
seta al
and eax, 0xff
add ebx, eax
mov eax, dword [ebp - 0x35c]
xor eax, 0xffffffff
and eax, edx
mov edx, dword [ebp - 0x35c]
and edx, dword [ebp - 0x360]
xor eax, edx
mov edx, dword [ebp - 0x340]
shr edx, 9
add ebx, eax
mov eax, dword [ebp - 0x35c]
shl eax, 0x17
or eax, edx
mov edx, dword [ebp - 0x31c]
xor esi, eax
add ebx, esi
cmp edi, ecx
seta al
and eax, 0xff
mov ecx, dword [ebp - 0x42c]
add ebx, eax
cmp dword [ebp - 0x4cc], ecx
seta al
and eax, 0xff
mov esi, dword [ebp - 0x430]
add ebx, eax
cmp dword [ebp - 0x4d0], esi
seta al
and eax, 0xff
mov edi, dword [ebp - 0x428]
shr edi, 2
add ebx, eax
shr edx, 0x1c
mov eax, dword [ebp - 0x31c]
shl eax, 0x1e
or edi, eax
mov eax, dword [ebp - 0x428]
shl eax, 4
or eax, edx
mov edx, dword [ebp - 0x31c]
shl edx, 0x19
xor edi, eax
mov eax, dword [ebp - 0x428]
shr eax, 7
or eax, edx
xor edi, eax
mov eax, dword [ebp - 0x428]
shl eax, 0x1e
mov dword [ebp - 0x48c], eax
mov eax, dword [ebp - 0x31c]
mov ecx, dword [ebp - 0x48c]
mov edx, dword [ebp - 0x31c]
shr eax, 2
mov esi, dword [ebp - 0x428]
shl edx, 4
or ecx, eax
mov eax, dword [ebp - 0x428]
mov dword [ebp - 0x48c], ecx
shr eax, 0x1c
mov ecx, dword [ebp - 0x428]
or eax, edx
mov edx, dword [ebp - 0x48c]
xor edx, eax
mov eax, dword [ebp - 0x320]
mov dword [ebp - 0x48c], edx
mov edx, dword [ebp - 0x31c]
and edx, eax
mov eax, dword [ebp - 0x410]
and ecx, eax
mov eax, dword [ebp - 0x3f4]
mov dword [ebp - 0x43c], ecx
mov ecx, dword [ebp - 0x31c]
and ecx, eax
mov eax, dword [ebp - 0x3f8]
and esi, eax
mov eax, dword [ebp - 0x43c]
xor ecx, edx
xor esi, eax
mov eax, dword [ebp - 0x420]
mov dword [ebp - 0x438], edx
xor ecx, eax
mov edx, dword [ebp - 0x3cc]
mov eax, dword [ebp - 0x434]
add eax, edx
mov edx, dword [ebp - 0x3d0]
cmp dword [ebp - 0x3cc], eax
mov dword [ebp - 0x33c], eax
seta al
and eax, 0xff
lea ecx, [edi + ecx]
add eax, edx
mov edx, dword [ebp - 0x434]
add eax, ebx
add edx, ecx
mov dword [ebp - 0x318], edx
mov dword [ebp - 0x358], eax
mov edx, dword [ebp - 0x31c]
mov eax, dword [ebp - 0x428]
shr edx, 7
shl eax, 0x19
or eax, edx
mov edx, dword [ebp - 0x48c]
xor edx, eax
mov eax, dword [ebp - 0x424]
mov dword [ebp - 0x48c], edx
xor esi, eax
mov eax, dword [ebp - 0x48c]
add eax, esi
cmp edi, ecx
mov ecx, dword [ebp - 0x318]
lea edx, [eax + ebx]
seta al
and eax, 0xff
add edx, eax
cmp dword [ebp - 0x434], ecx
seta al
and eax, 0xff
add edx, eax
mov dword [ebp - 0x440], edx
mov ecx, dword [ebp - 0x358]
mov eax, dword [ebp - 0x33c]
mov edx, dword [ebp - 0x33c]
shr eax, 0x12
mov ebx, dword [ebp - 0x358]
shl ecx, 0xe
mov edi, dword [ebp - 0x33c]
or ecx, eax
mov eax, dword [ebp - 0x358]
shr edx, 0xe
mov esi, dword [ebp - 0x344]
shl eax, 0x12
xor edi, 0xffffffff
or eax, edx
mov edx, dword [ebp - 0x33c]
xor ecx, eax
mov eax, dword [ebp - 0x33c]
shl eax, 0xe
and edi, esi
shr ebx, 0x12
mov esi, dword [ebp - 0x388]
shl edx, 0x12
or ebx, eax
mov eax, dword [ebp - 0x358]
mov esi, dword [esi*8 + 0x420284]
shr eax, 0xe
mov dword [ebp - 0x4d4], esi
or eax, edx
mov edx, dword [ebp - 0x340]
xor ebx, eax
mov eax, dword [ebp - 0x33c]
and eax, edx
mov edx, dword [ebp - 0x33c]
shl edx, 0x17
xor edi, eax
mov eax, dword [ebp - 0x358]
shr eax, 9
or eax, edx
mov edx, dword [ebp - 0x388]
xor ecx, eax
mov eax, dword [ebp - 0x388]
add ecx, edi
add esi, ecx
mov eax, dword [ebp + eax*8 - 0x328]
mov dword [ebp - 0x444], esi
mov dword [ebp - 0x4d8], eax
add esi, eax
mov eax, dword [ebp - 0x348]
mov dword [ebp - 0x448], esi
add esi, eax
mov dword [ebp - 0x44c], esi
mov eax, dword [ebp + edx*8 - 0x32c]
mov esi, dword [edx*8 + 0x420280]
mov edx, dword [ebp - 0x360]
add esi, eax
mov eax, dword [ebp - 0x364]
add esi, eax
mov eax, dword [ebp - 0x358]
xor eax, 0xffffffff
and eax, edx
mov edx, dword [ebp - 0x358]
and edx, dword [ebp - 0x35c]
xor eax, edx
mov edx, dword [ebp - 0x33c]
shr edx, 9
add esi, eax
mov eax, dword [ebp - 0x358]
shl eax, 0x17
or eax, edx
mov edx, dword [ebp - 0x44c]
xor ebx, eax
add esi, ebx
cmp edi, ecx
seta al
and eax, 0xff
mov ecx, dword [ebp - 0x444]
add esi, eax
cmp dword [ebp - 0x4d4], ecx
seta al
and eax, 0xff
mov ecx, dword [ebp - 0x440]
add esi, eax
mov eax, dword [ebp - 0x448]
cmp dword [ebp - 0x4d8], eax
seta al
and eax, 0xff
add esi, eax
cmp dword [ebp - 0x348], edx
seta al
and eax, 0xff
mov edx, dword [ebp - 0x318]
shr ecx, 2
add esi, eax
shr edx, 0x1c
mov eax, dword [ebp - 0x318]
shl eax, 0x1e
or ecx, eax
mov eax, dword [ebp - 0x440]
shl eax, 4
or eax, edx
mov edx, dword [ebp - 0x318]
shl edx, 0x19
xor ecx, eax
mov eax, dword [ebp - 0x440]
shr eax, 7
or eax, edx
xor ecx, eax
mov dword [ebp - 0x380], ecx
mov ebx, dword [ebp - 0x440]
mov eax, dword [ebp - 0x318]
mov edx, dword [ebp - 0x318]
shr eax, 2
mov edi, dword [ebp - 0x31c]
shl ebx, 0x1e
mov ecx, dword [ebp - 0x428]
shl edx, 4
or ebx, eax
mov eax, dword [ebp - 0x440]
shr eax, 0x1c
or eax, edx
mov edx, dword [ebp - 0x440]
xor ebx, eax
mov eax, dword [ebp - 0x318]
and eax, edi
and edx, ecx
mov edi, dword [ebp - 0x320]
mov ecx, dword [ebp - 0x318]
and ecx, edi
mov dword [ebp - 0x324], eax
xor ecx, eax
mov edi, dword [ebp - 0x440]
mov eax, dword [ebp - 0x410]
mov dword [ebp - 0x328], edx
and edi, eax
mov eax, dword [ebp - 0x438]
xor ecx, eax
mov eax, dword [ebp - 0x380]
add ecx, eax
xor edi, edx
mov eax, dword [ebp - 0x44c]
mov edx, dword [ebp - 0x3f4]
add eax, edx
mov edx, dword [ebp - 0x3f8]
cmp dword [ebp - 0x3f4], eax
mov dword [ebp - 0x338], eax
seta al
and eax, 0xff
lea eax, [esi + eax]
add eax, edx
mov edx, dword [ebp - 0x44c]
add edx, ecx
mov dword [ebp - 0x354], eax
mov dword [ebp - 0x3b4], edx
mov eax, dword [ebp - 0x440]
shl eax, 0x19
mov edx, dword [ebp - 0x318]
shr edx, 7
or eax, edx
mov edx, dword [ebp - 0x338]
xor ebx, eax
mov eax, dword [ebp - 0x43c]
xor edi, eax
add ebx, edi
cmp dword [ebp - 0x380], ecx
seta al
and eax, 0xff
mov ecx, dword [ebp - 0x3b4]
add ebx, eax
mov edi, dword [ebp - 0x338]
add ebx, esi
cmp dword [ebp - 0x44c], ecx
seta al
and eax, 0xff
mov ecx, dword [ebp - 0x354]
add ebx, eax
mov eax, dword [ebp - 0x338]
shr eax, 0x12
mov dword [ebp - 0x3b8], ebx
shl ecx, 0xe
mov ebx, dword [ebp - 0x354]
or ecx, eax
mov eax, dword [ebp - 0x354]
shr edx, 0xe
mov esi, dword [ebp - 0x340]
shl eax, 0x12
xor edi, 0xffffffff
or eax, edx
mov edx, dword [ebp - 0x338]
xor ecx, eax
mov eax, dword [ebp - 0x338]
shl eax, 0xe
and edi, esi
shr ebx, 0x12
mov esi, dword [ebp - 0x388]
shl edx, 0x12
or ebx, eax
mov eax, dword [ebp - 0x354]
mov esi, dword [esi*8 + 0x42028c]
shr eax, 0xe
or eax, edx
mov edx, dword [ebp - 0x33c]
xor ebx, eax
mov eax, dword [ebp - 0x338]
and eax, edx
mov edx, dword [ebp - 0x338]
shl edx, 0x17
xor edi, eax
mov eax, dword [ebp - 0x354]
mov dword [ebp - 0x4dc], esi
shr eax, 9
or eax, edx
mov edx, dword [ebp - 0x388]
xor ecx, eax
mov eax, dword [ebp - 0x388]
add ecx, edi
add esi, ecx
mov eax, dword [ebp + eax*8 - 0x320]
mov dword [ebp - 0x450], esi
mov dword [ebp - 0x4e0], eax
add esi, eax
mov eax, dword [ebp - 0x344]
mov dword [ebp - 0x454], esi
add esi, eax
mov dword [ebp - 0x458], esi
mov eax, dword [ebp + edx*8 - 0x324]
mov esi, dword [edx*8 + 0x420288]
mov edx, dword [ebp - 0x35c]
add esi, eax
mov eax, dword [ebp - 0x360]
add esi, eax
mov eax, dword [ebp - 0x354]
xor eax, 0xffffffff
and eax, edx
mov edx, dword [ebp - 0x354]
and edx, dword [ebp - 0x358]
xor eax, edx
mov edx, dword [ebp - 0x338]
shr edx, 9
add esi, eax
mov eax, dword [ebp - 0x354]
shl eax, 0x17
or eax, edx
mov edx, dword [ebp - 0x458]
xor ebx, eax
add esi, ebx
cmp edi, ecx
seta al
and eax, 0xff
mov ecx, dword [ebp - 0x450]
add esi, eax
cmp dword [ebp - 0x4dc], ecx
seta al
and eax, 0xff
mov ecx, dword [ebp - 0x3b8]
add esi, eax
mov eax, dword [ebp - 0x454]
cmp dword [ebp - 0x4e0], eax
mov ebx, dword [ebp - 0x3b8]
seta al
and eax, 0xff
mov edi, dword [ebp - 0x318]
add esi, eax
cmp dword [ebp - 0x344], edx
seta al
and eax, 0xff
mov edx, dword [ebp - 0x3b4]
shr ecx, 2
add esi, eax
shr edx, 0x1c
mov eax, dword [ebp - 0x3b4]
shl eax, 0x1e
shl ebx, 0x1e
or ecx, eax
mov eax, dword [ebp - 0x3b8]
shl eax, 4
or eax, edx
mov edx, dword [ebp - 0x3b4]
shl edx, 0x19
xor ecx, eax
mov eax, dword [ebp - 0x3b8]
shr eax, 7
or eax, edx
mov edx, dword [ebp - 0x3b4]
shl edx, 4
xor ecx, eax
mov eax, dword [ebp - 0x3b4]
mov dword [ebp - 0x37c], ecx
shr eax, 2
or ebx, eax
mov eax, dword [ebp - 0x3b8]
shr eax, 0x1c
or eax, edx
xor ebx, eax
mov eax, dword [ebp - 0x3b4]
and eax, edi
mov dword [ebp - 0x32c], eax
mov ecx, dword [ebp - 0x440]
mov edx, dword [ebp - 0x3b8]
mov edi, dword [ebp - 0x31c]
and edx, ecx
mov ecx, dword [ebp - 0x3b4]
and ecx, edi
mov edi, dword [ebp - 0x3b8]
xor ecx, eax
mov eax, dword [ebp - 0x428]
and edi, eax
mov eax, dword [ebp - 0x324]
xor ecx, eax
mov eax, dword [ebp - 0x37c]
add ecx, eax
xor edi, edx
mov dword [ebp - 0x330], edx
mov eax, dword [ebp - 0x458]
mov edx, dword [ebp - 0x320]
add eax, edx
mov edx, dword [ebp - 0x410]
cmp dword [ebp - 0x320], eax
mov dword [ebp - 0x334], eax
seta al
and eax, 0xff
lea eax, [esi + eax]
add eax, edx
mov edx, dword [ebp - 0x458]
add edx, ecx
mov dword [ebp - 0x350], eax
mov dword [ebp - 0x3bc], edx
mov eax, dword [ebp - 0x3b8]
shl eax, 0x19
mov edx, dword [ebp - 0x3b4]
shr edx, 7
or eax, edx
mov edx, dword [ebp - 0x334]
xor ebx, eax
mov eax, dword [ebp - 0x328]
xor edi, eax
add ebx, edi
cmp dword [ebp - 0x37c], ecx
seta al
and eax, 0xff
mov ecx, dword [ebp - 0x3bc]
add ebx, eax
mov edi, dword [ebp - 0x334]
add ebx, esi
cmp dword [ebp - 0x458], ecx
seta al
and eax, 0xff
mov ecx, dword [ebp - 0x350]
add ebx, eax
mov eax, dword [ebp - 0x334]
shr eax, 0x12
mov dword [ebp - 0x3c0], ebx
shl ecx, 0xe
mov ebx, dword [ebp - 0x350]
or ecx, eax
mov eax, dword [ebp - 0x350]
shr edx, 0xe
mov esi, dword [ebp - 0x33c]
shl eax, 0x12
xor edi, 0xffffffff
or eax, edx
mov edx, dword [ebp - 0x334]
xor ecx, eax
mov eax, dword [ebp - 0x334]
shl eax, 0xe
and edi, esi
shr ebx, 0x12
mov esi, dword [ebp - 0x388]
shl edx, 0x12
or ebx, eax
mov eax, dword [ebp - 0x350]
mov esi, dword [esi*8 + 0x420294]
shr eax, 0xe
or eax, edx
mov edx, dword [ebp - 0x338]
xor ebx, eax
mov eax, dword [ebp - 0x334]
and eax, edx
mov edx, dword [ebp - 0x334]
shl edx, 0x17
xor edi, eax
mov eax, dword [ebp - 0x350]
mov dword [ebp - 0x4e4], esi
shr eax, 9
or eax, edx
mov edx, dword [ebp - 0x388]
xor ecx, eax
mov eax, dword [ebp - 0x388]
add ecx, edi
add esi, ecx
mov eax, dword [ebp + eax*8 - 0x318]
mov dword [ebp - 0x45c], esi
mov dword [ebp - 0x4e8], eax
add esi, eax
mov eax, dword [ebp - 0x340]
mov dword [ebp - 0x460], esi
add esi, eax
mov dword [ebp - 0x464], esi
mov eax, dword [ebp + edx*8 - 0x31c]
mov esi, dword [edx*8 + 0x420290]
mov edx, dword [ebp - 0x358]
add esi, eax
mov eax, dword [ebp - 0x35c]
add esi, eax
mov eax, dword [ebp - 0x350]
xor eax, 0xffffffff
and eax, edx
mov edx, dword [ebp - 0x350]
and edx, dword [ebp - 0x354]
xor eax, edx
mov edx, dword [ebp - 0x334]
shr edx, 9
add esi, eax
mov eax, dword [ebp - 0x350]
shl eax, 0x17
or eax, edx
mov edx, dword [ebp - 0x464]
xor ebx, eax
add esi, ebx
cmp edi, ecx
seta al
and eax, 0xff
mov ecx, dword [ebp - 0x45c]
add esi, eax
cmp dword [ebp - 0x4e4], ecx
seta al
and eax, 0xff
mov ecx, dword [ebp - 0x3c0]
add esi, eax
mov eax, dword [ebp - 0x460]
cmp dword [ebp - 0x4e8], eax
mov ebx, dword [ebp - 0x3c0]
seta al
and eax, 0xff
mov edi, dword [ebp - 0x3b4]
add esi, eax
cmp dword [ebp - 0x340], edx
seta al
and eax, 0xff
mov edx, dword [ebp - 0x3bc]
shr ecx, 2
add esi, eax
shr edx, 0x1c
mov eax, dword [ebp - 0x3bc]
shl eax, 0x1e
shl ebx, 0x1e
or ecx, eax
mov eax, dword [ebp - 0x3c0]
shl eax, 4
or eax, edx
mov edx, dword [ebp - 0x3bc]
shl edx, 0x19
xor ecx, eax
mov eax, dword [ebp - 0x3c0]
shr eax, 7
or eax, edx
mov edx, dword [ebp - 0x3bc]
shl edx, 4
xor ecx, eax
mov eax, dword [ebp - 0x3bc]
mov dword [ebp - 0x378], ecx
shr eax, 2
or ebx, eax
mov eax, dword [ebp - 0x3c0]
shr eax, 0x1c
or eax, edx
xor ebx, eax
mov eax, dword [ebp - 0x3bc]
and eax, edi
mov dword [ebp - 0x36c], eax
mov ecx, dword [ebp - 0x3b8]
mov edx, dword [ebp - 0x3c0]
mov edi, dword [ebp - 0x318]
and edx, ecx
mov ecx, dword [ebp - 0x3bc]
and ecx, edi
mov edi, dword [ebp - 0x3c0]
xor ecx, eax
mov eax, dword [ebp - 0x440]
and edi, eax
mov eax, dword [ebp - 0x32c]
xor ecx, eax
mov eax, dword [ebp - 0x378]
add ecx, eax
xor edi, edx
mov dword [ebp - 0x370], edx
mov eax, dword [ebp - 0x464]
mov edx, dword [ebp - 0x31c]
add eax, edx
mov edx, dword [ebp - 0x428]
cmp dword [ebp - 0x31c], eax
mov dword [ebp - 0x34c], eax
seta al
and eax, 0xff
lea eax, [esi + eax]
add eax, edx
mov edx, dword [ebp - 0x464]
add edx, ecx
mov dword [ebp - 0x368], eax
mov dword [ebp - 0x3c4], edx
mov eax, dword [ebp - 0x3c0]
shl eax, 0x19
mov edx, dword [ebp - 0x3bc]
shr edx, 7
or eax, edx
mov edx, dword [ebp - 0x34c]
xor ebx, eax
mov eax, dword [ebp - 0x330]
xor edi, eax
add ebx, edi
cmp dword [ebp - 0x378], ecx
seta al
and eax, 0xff
mov ecx, dword [ebp - 0x3c4]
add ebx, eax
mov edi, dword [ebp - 0x34c]
add ebx, esi
cmp dword [ebp - 0x464], ecx
seta al
and eax, 0xff
mov ecx, dword [ebp - 0x368]
add ebx, eax
mov eax, dword [ebp - 0x34c]
shr eax, 0x12
mov dword [ebp - 0x3c8], ebx
shl ecx, 0xe
mov ebx, dword [ebp - 0x368]
or ecx, eax
mov eax, dword [ebp - 0x368]
shr edx, 0xe
mov esi, dword [ebp - 0x338]
shl eax, 0x12
xor edi, 0xffffffff
or eax, edx
mov edx, dword [ebp - 0x34c]
xor ecx, eax
mov eax, dword [ebp - 0x34c]
shl eax, 0xe
and edi, esi
shr ebx, 0x12
mov esi, dword [ebp - 0x388]
shl edx, 0x12
or ebx, eax
mov eax, dword [ebp - 0x368]
mov esi, dword [esi*8 + 0x42029c]
shr eax, 0xe
or eax, edx
mov edx, dword [ebp - 0x334]
xor ebx, eax
mov eax, dword [ebp - 0x34c]
and eax, edx
mov edx, dword [ebp - 0x34c]
shl edx, 0x17
xor edi, eax
mov eax, dword [ebp - 0x368]
mov dword [ebp - 0x4ec], esi
shr eax, 9
or eax, edx
mov edx, dword [ebp - 0x388]
xor ecx, eax
mov eax, dword [ebp - 0x388]
add ecx, edi
add esi, ecx
mov eax, dword [ebp + eax*8 - 0x310]
mov dword [ebp - 0x468], esi
mov dword [ebp - 0x4f0], eax
add esi, eax
mov eax, dword [ebp - 0x33c]
mov dword [ebp - 0x46c], esi
add esi, eax
mov dword [ebp - 0x470], esi
mov eax, dword [ebp + edx*8 - 0x314]
mov esi, dword [edx*8 + 0x420298]
mov edx, dword [ebp - 0x354]
add esi, eax
mov eax, dword [ebp - 0x358]
add esi, eax
mov eax, dword [ebp - 0x368]
xor eax, 0xffffffff
and eax, edx
mov edx, dword [ebp - 0x368]
and edx, dword [ebp - 0x350]
xor eax, edx
mov edx, dword [ebp - 0x34c]
shr edx, 9
add esi, eax
mov eax, dword [ebp - 0x368]
shl eax, 0x17
or eax, edx
mov edx, dword [ebp - 0x470]
xor ebx, eax
add esi, ebx
cmp edi, ecx
seta al
and eax, 0xff
mov ecx, dword [ebp - 0x468]
add esi, eax
cmp dword [ebp - 0x4ec], ecx
seta al
and eax, 0xff
mov ecx, dword [ebp - 0x3c8]
add esi, eax
mov eax, dword [ebp - 0x46c]
cmp dword [ebp - 0x4f0], eax
mov ebx, dword [ebp - 0x3c8]
seta al
and eax, 0xff
mov edi, dword [ebp - 0x3b8]
add esi, eax
cmp dword [ebp - 0x33c], edx
seta al
and eax, 0xff
mov edx, dword [ebp - 0x3c4]
shr ecx, 2
add esi, eax
shr edx, 0x1c
mov eax, dword [ebp - 0x3c4]
shl eax, 0x1e
shl ebx, 0x1e
or ecx, eax
mov eax, dword [ebp - 0x3c8]
shl eax, 4
or eax, edx
mov edx, dword [ebp - 0x3c4]
shl edx, 0x19
xor ecx, eax
mov eax, dword [ebp - 0x3c8]
shr eax, 7
or eax, edx
mov edx, dword [ebp - 0x3c4]
shl edx, 4
xor ecx, eax
mov eax, dword [ebp - 0x3c4]
mov dword [ebp - 0x374], ecx
shr eax, 2
mov ecx, dword [ebp - 0x3b4]
or ebx, eax
mov eax, dword [ebp - 0x3c8]
shr eax, 0x1c
or eax, edx
mov edx, dword [ebp - 0x318]
xor ebx, eax
mov eax, dword [ebp - 0x3bc]
xor ecx, eax
mov eax, dword [ebp - 0x3c4]
and ecx, eax
mov eax, dword [ebp - 0x3c0]
xor edi, eax
mov eax, dword [ebp - 0x3c8]
and edi, eax
mov eax, dword [ebp - 0x36c]
xor ecx, eax
mov eax, dword [ebp - 0x374]
add ecx, eax
mov eax, dword [ebp - 0x470]
add eax, edx
mov dword [ebp - 0x38c], eax
cmp dword [ebp - 0x318], eax
seta al
and eax, 0xff
mov edx, dword [ebp - 0x440]
lea eax, [esi + eax]
add eax, edx
mov edx, dword [ebp - 0x470]
add edx, ecx
mov dword [ebp - 0x390], eax
mov dword [ebp - 0x3cc], edx
mov eax, dword [ebp - 0x3c8]
shl eax, 0x19
mov edx, dword [ebp - 0x3c4]
shr edx, 7
or eax, edx
mov edx, dword [ebp - 0x334]
xor ebx, eax
mov eax, dword [ebp - 0x370]
xor edi, eax
mov dword [ebp - 0x39c], edx
add ebx, edi
cmp dword [ebp - 0x374], ecx
seta al
and eax, 0xff
mov ecx, dword [ebp - 0x3cc]
add ebx, eax
mov edi, dword [ebp - 0x388]
add ebx, esi
cmp dword [ebp - 0x470], ecx
seta al
and eax, 0xff
add edi, 8
add ebx, eax
mov esi, dword [ebp - 0x338]
mov eax, dword [ebp - 0x354]
mov ecx, dword [ebp - 0x350]
mov dword [ebp - 0x388], edi
mov dword [ebp - 0x394], esi
mov dword [ebp - 0x398], eax
mov dword [ebp - 0x3a0], ecx
mov esi, dword [ebp - 0x34c]
mov eax, dword [ebp - 0x368]
mov edx, dword [ebp - 0x38c]
mov ecx, dword [ebp - 0x390]
mov dword [ebp - 0x3d0], ebx
mov dword [ebp - 0x3a4], esi
mov dword [ebp - 0x3a8], eax
mov dword [ebp - 0x3ac], edx
mov dword [ebp - 0x3b0], ecx
cmp dword [ebp - 0x388], 0x58
jne 0x416f28
mov esi, dword [ebp - 0x310]
mov eax, dword [ebp - 0x3cc]
add eax, esi
mov esi, dword [ebp + 8]
mov edx, ebx
mov ebx, dword [ebp - 0x314]
add edx, ebx
mov dword [esi + 4], eax
cmp dword [ebp - 0x3cc], eax
mov edi, dword [esi + 0xc]
seta al
and eax, 0xff
mov ebx, dword [ebp - 0x490]
add edx, eax
mov eax, dword [ebp - 0x3c4]
add eax, edi
mov dword [esi], edx
mov edx, dword [ebp - 0x3c8]
mov dword [esi + 0xc], eax
add edx, ebx
cmp dword [ebp - 0x3c4], eax
seta al
and eax, 0xff
mov edi, dword [esi + 0x14]
add edx, eax
mov eax, dword [ebp - 0x3bc]
add eax, edi
mov ebx, dword [ebp - 0x494]
mov dword [esi + 8], edx
mov edx, dword [ebp - 0x3c0]
add edx, ebx
mov dword [esi + 0x14], eax
cmp dword [ebp - 0x3bc], eax
mov edi, dword [ebp - 0x49c]
seta al
and eax, 0xff
mov ebx, dword [esi + 0x24]
add edx, eax
mov eax, dword [ebp - 0x3b4]
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0x1c]
add eax, edx
mov edx, dword [ebp - 0x3b8]
add edx, edi
mov dword [esi + 0x1c], eax
cmp dword [ebp - 0x3b4], eax
seta al
and eax, 0xff
add edx, eax
mov eax, dword [ebp - 0x38c]
add eax, ebx
mov dword [esi + 0x18], edx
mov edx, ecx
mov ecx, dword [ebp - 0x4a0]
add edx, ecx
mov dword [esi + 0x24], eax
cmp dword [ebp - 0x38c], eax
seta al
and eax, 0xff
add edx, eax
mov dword [esi + 0x20], edx
mov edx, dword [esi + 0x2c]
mov eax, dword [ebp - 0x34c]
mov edi, dword [ebp - 0x4a4]
add eax, edx
mov edx, dword [ebp - 0x368]
add edx, edi
mov dword [esi + 0x2c], eax
cmp dword [ebp - 0x34c], eax
mov ebx, dword [esi + 0x34]
seta al
and eax, 0xff
mov ecx, dword [ebp - 0x4a8]
add edx, eax
mov eax, dword [ebp - 0x334]
add eax, ebx
mov dword [esi + 0x28], edx
mov edx, dword [ebp - 0x350]
mov dword [esi + 0x34], eax
add edx, ecx
cmp dword [ebp - 0x334], eax
seta al
and eax, 0xff
mov edi, dword [ebp - 0x4ac]
add edx, eax
mov eax, dword [ebp - 0x338]
mov dword [esi + 0x30], edx
mov edx, dword [esi + 0x3c]
add eax, edx
mov edx, dword [ebp - 0x354]
add edx, edi
mov dword [esi + 0x3c], eax
cmp dword [ebp - 0x338], eax
mov dword [esi + 0xc0], 0
seta al
and eax, 0xff
add edx, eax
mov dword [esi + 0x38], edx
xor edx, edx
cmp dword [ebp + 0x10], 0x7f
jg 0x416b62
push ebx
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp - 0x474]
push edx
mov eax, dword [ebp - 0x498]
push eax
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
add esp, 0x10
mov dword [eax + 0xc0], edx
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp + 0x10]
add eax, edx
cmp eax, 0x7f
jle 0x41887e
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x98]
add eax, 0x40
mov dword [ebp - 0x4f4], ecx
mov dword [ebp - 0x498], eax
jmp 0x416b62
mov ecx, dword [ebp + 8]
push ebx
lea eax, [edx + ecx + 0x40]
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp - 0x474]
push edx
push eax
call sub.msvcrt.dll_memcpy
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
mov edi, dword [esi + 0xc0]
add edi, eax
add esp, 0x10
mov dword [esi + 0xc0], edi
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret