Function at 0x42f52c
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x1b8
lea eax, [ebp - 0x18]
mov dword [eax - 4], esp
mov dword [eax + 8], 0xffffffff
mov dword [eax + 4], 0x438190
mov ecx, dword fs:[0]
mov dword [eax], ecx
mov dword fs:[0], eax
xorpd xmm0, xmm0
movsd xmm2, qword [0x6142c8]
movsd xmm3, qword [0x6142d0]
movsd xmm4, qword [0x6142d8]
movsd xmm5, qword [0x6142e0]
xorpd xmm1, xmm1
movapd xmm7, xmm1
mulsd xmm7, qword [0x6142b8]
mulsd xmm7, xmm1
movapd xmm6, xmm1
mulsd xmm6, xmm1
subsd xmm7, xmm6
movapd xmm6, xmm1
mulsd xmm6, qword [0x6142c0]
mulsd xmm6, xmm1
addsd xmm6, xmm2
divsd xmm7, xmm6
addsd xmm7, xmm0
movapd xmm6, xmm1
mulsd xmm6, xmm3
addsd xmm6, xmm7
movapd xmm0, xmm4
cmpltsd xmm0, xmm7
andpd xmm6, xmm0
andnpd xmm0, xmm7
orpd xmm0, xmm6
movsd xmm6, qword [0x612160]
addsd xmm1, xmm6
ucomisd xmm5, xmm1
ja 0x42f583
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x42f62c
mov eax, ebx
sbb ecx, 0xffffff83
out 0x8a, eax
in eax, 0x87
in al, 0x8d
invalid
lea edx, [0x42f5f8]
movdqa xmm1, xmmword [0x612110]
xor eax, eax
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [ebp + eax - 0x13c], xmm1
add eax, 0x10
paddb xmm1, xmm2
cmp eax, 0x100
jne 0x42f644
movsd xmm1, qword [0x612130]
movapd xmm2, xmm0
subsd xmm2, xmm1
cvttsd2si eax, xmm2
lea ecx, [0x42f612]
mov dword [ebp - 0x28], ecx
xor eax, 0x80000000
cvttsd2si ecx, xmm0
ucomisd xmm0, xmm1
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], ecx
shr ecx, 0x10
mov dword [ebp - 0x34], ecx
mov edi, 0xff
xor ebx, ebx
xor ecx, ecx
mov dword [ebp - 0x30], edx
xor edx, edx
inc edx
cmp edi, 2
jb 0x42f6b7
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, edi
jb 0x42f6b0
mov dword [ebp - 0x20], edi
mov edi, 0xc
cmp ecx, 3
ja case.default.0x42f6c4
jmp dword [ecx*4 + 0x6145fc]
movzx eax, bl
lea esi, [eax + ebp]
add esi, 0xfffffec4
mov eax, dword [ebp - 0x24]
jmp 0x42f6fc
movzx eax, bl
lea esi, [eax + ebp]
add esi, 0xfffffec4
mov eax, dword [ebp - 0x34]
jmp 0x42f6fc
movzx eax, bl
lea esi, [eax + ebp]
add esi, 0xfffffec4
mov eax, dword [ebp - 0x2c]
jmp 0x42f723
movzx eax, bl
lea esi, [eax + ebp]
add esi, 0xfffffec4
mov eax, dword [ebp - 0x24]
mov al, ah
jmp 0x42f723
movzx eax, bl
mov al, byte [ebp + eax - 0x13c]
mov esi, dword [ebp - 0x28]
add esi, ecx
add esi, 0xfffffffc
add al, byte [esi]
inc ecx
movzx esi, al
add al, 0x19
cmp ecx, 0x18
mov ebx, 0
cmova ecx, ebx
movzx ebx, al
cmovbe ebx, esi
movzx esi, bl
mov eax, edx
and eax, esi
dec edi
je 0x42f751
cmp eax, dword [ebp - 0x20]
ja 0x42f6bf
jmp 0x42f758
xor edx, edx
div dword [ebp - 0x20]
mov eax, edx
mov edi, dword [ebp - 0x20]
cmp edi, eax
mov edx, dword [ebp - 0x30]
je 0x42f78f
mov dl, byte [ebp + edi - 0x13c]
xor dl, byte [ebp + eax - 0x13c]
mov byte [ebp + edi - 0x13c], dl
xor dl, byte [ebp + eax - 0x13c]
mov byte [ebp + eax - 0x13c], dl
xor byte [ebp + edi - 0x13c], dl
mov edx, dword [ebp - 0x30]
dec edi
jne 0x42f6a5
movzx eax, byte [ebp - 0x13b]
mov dword [ebp - 0x28], eax
mov edi, eax
mov cl, byte [ebp - 0x137]
mov byte [ebp - 0x20], cl
movzx eax, byte [ebp + esi - 0x13c]
mov bl, byte [edx]
mov bh, byte [ebp + edi - 0x13c]
add bh, byte [ebp - 0x139]
mov ch, byte [edx + 1]
movzx esi, bh
mov cl, byte [ebp + esi - 0x13c]
movzx edi, byte [ebp - 0x135]
mov dword [ebp - 0x34], eax
movzx edx, byte [ebp + eax - 0x13c]
mov dword [ebp - 0x24], edx
mov byte [ebp + eax - 0x13c], cl
mov dl, byte [ebp + edi - 0x13c]
mov byte [ebp + esi - 0x13c], dl
mov eax, dword [ebp - 0x28]
mov edx, eax
inc dl
movzx edx, dl
mov cl, byte [ebp + edx - 0x13c]
mov byte [ebp + edi - 0x13c], cl
mov eax, dword [ebp - 0x24]
mov byte [ebp + edx - 0x13c], al
add ch, 0x28
shl bl, 4
add bl, 0xd0
or bl, ch
movzx ecx, byte [ebp + esi - 0x13c]
add ecx, eax
mov esi, 0xff
and ecx, esi
movzx edx, bl
mov dword [ebp - 0x2c], edx
xor bl, byte [ebp + ecx - 0x13c]
mov dl, byte [ebp - 0x20]
add dl, byte [ebp + eax - 0x13c]
mov byte [ebp - 0x20], dl
movzx ecx, byte [ebp + edi - 0x13c]
mov eax, dword [ebp - 0x34]
movzx eax, byte [ebp + eax - 0x13c]
add eax, ecx
movzx ecx, dl
movzx ecx, byte [ebp + ecx - 0x13c]
add ecx, eax
and ecx, esi
movzx ecx, byte [ebp + ecx - 0x13c]
xor bl, byte [ebp + ecx - 0x13c]
add bh, byte [ebp - 0x24]
mov ecx, dword [ebp - 0x30]
mov al, byte [ecx + 2]
mov byte [ebp - 0x34], al
mov ah, byte [ecx + 3]
mov byte [ebp - 0x24], bh
movzx edi, bh
mov dh, byte [ebp + edi - 0x13c]
mov esi, dword [ebp - 0x2c]
movzx ecx, byte [ebp + esi - 0x13c]
mov byte [ebp + esi - 0x13c], dh
movzx esi, bl
mov al, byte [ebp + esi - 0x13c]
mov byte [ebp + edi - 0x13c], al
mov ebx, edi
mov edx, dword [ebp - 0x28]
mov al, dl
add al, 2
movzx edi, al
mov al, byte [ebp + edi - 0x13c]
mov byte [ebp + esi - 0x13c], al
mov byte [ebp + edi - 0x13c], cl
movzx edi, byte [ebp + esi - 0x13c]
mov edx, dword [ebp - 0x2c]
movzx edx, byte [ebp + edx - 0x13c]
add edx, edi
mov al, byte [ebp - 0x20]
add al, byte [ebp + ecx - 0x13c]
mov byte [ebp - 0x20], al
movzx edi, al
movzx edi, byte [ebp + edi - 0x13c]
add edi, edx
mov al, byte [ebp - 0x34]
shl al, 4
add al, 0xd0
add ah, 0x28
or ah, al
movzx edx, byte [ebp + ebx - 0x13c]
mov dword [ebp - 0x2c], ecx
add edx, ecx
mov ecx, 0xff
and edx, ecx
mov al, byte [ebp + edx - 0x13c]
xor al, ah
and edi, ecx
movzx edx, byte [ebp + edi - 0x13c]
xor al, byte [ebp + edx - 0x13c]
movsx edx, al
mov word [ebp - 0x1ae], dx
mov edx, dword [ebp - 0x28]
add dl, 4
xor ebx, ebx
mov ecx, edx
mov byte [ebp - 0x34], dl
mov cl, byte [ebp - 0x24]
add cl, byte [ebp - 0x2c]
movzx esi, ah
mov edx, dword [ebp - 0x30]
mov ah, byte [edx + ebx*2 + 4]
mov dl, byte [edx + ebx*2 + 5]
mov byte [ebp - 0x28], dl
movzx edx, byte [ebp + esi - 0x13c]
mov dword [ebp - 0x2c], edx
mov byte [ebp - 0x24], cl
movzx edi, cl
mov dword [ebp - 0x38], edi
mov dh, byte [ebp + edi - 0x13c]
mov byte [ebp + esi - 0x13c], dh
movzx ecx, al
mov al, byte [ebp + ecx - 0x13c]
mov byte [ebp + edi - 0x13c], al
mov al, byte [ebp - 0x34]
dec al
movzx edi, al
mov al, byte [ebp + edi - 0x13c]
mov byte [ebp + ecx - 0x13c], al
mov edx, dword [ebp - 0x2c]
mov byte [ebp + edi - 0x13c], dl
movzx ecx, byte [ebp + ecx - 0x13c]
movzx edi, byte [ebp + esi - 0x13c]
mov esi, edx
add edi, ecx
mov al, byte [ebp - 0x20]
add al, byte [ebp + edx - 0x13c]
mov byte [ebp - 0x20], al
movzx ecx, al
movzx ecx, byte [ebp + ecx - 0x13c]
add ecx, edi
mov al, byte [ebp - 0x28]
add al, 0x28
shl ah, 4
add ah, 0xd0
or ah, al
mov edx, dword [ebp - 0x38]
movzx edx, byte [ebp + edx - 0x13c]
add edx, esi
mov edi, 0xff
and edx, edi
mov al, byte [ebp + edx - 0x13c]
xor al, ah
and ecx, edi
movzx ecx, byte [ebp + ecx - 0x13c]
xor al, byte [ebp + ecx - 0x13c]
movsx ecx, al
mov word [ebp + ebx*2 - 0x1ac], cx
mov cl, byte [ebp - 0x34]
mov edx, ecx
inc dl
inc ebx
cmp ebx, 4
jne 0x42f960
mov ch, cl
mov esi, dword [ebp - 0x30]
mov dword [ebp - 0x28], edx
mov cl, byte [esi + 0xc]
mov byte [ebp - 0x140], cl
mov cl, byte [esi + 0xd]
mov byte [ebp - 0x38], cl
movzx edx, ah
mov dword [ebp - 0x3c], edx
mov cl, byte [ebp - 0x24]
add cl, byte [ebp - 0x2c]
movzx ebx, byte [ebp + edx - 0x13c]
mov byte [ebp - 0x24], cl
movzx edi, cl
mov ah, byte [ebp + edi - 0x13c]
mov byte [ebp + edx - 0x13c], ah
movzx esi, al
mov dh, byte [ebp + esi - 0x13c]
mov byte [ebp + edi - 0x13c], dh
movzx eax, ch
mov dh, byte [ebp + eax - 0x13c]
mov byte [ebp + esi - 0x13c], dh
mov byte [ebp + eax - 0x13c], bl
mov al, byte [ebp - 0x140]
shl al, 4
add al, 0xd0
mov ch, byte [ebp - 0x38]
add ch, 0x28
or ch, al
mov cl, byte [ebp - 0x20]
add cl, byte [ebp + ebx - 0x13c]
movzx eax, byte [ebp + edi - 0x13c]
mov dword [ebp - 0x2c], ebx
add eax, ebx
movzx edx, byte [ebp + esi - 0x13c]
mov esi, dword [ebp - 0x3c]
movzx esi, byte [ebp + esi - 0x13c]
add esi, edx
mov byte [ebp - 0x20], cl
movzx edx, cl
movzx edi, byte [ebp + edx - 0x13c]
mov dl, ch
add edi, esi
mov ecx, 0xff
and eax, ecx
mov dh, byte [ebp + eax - 0x13c]
xor dh, dl
and edi, ecx
movzx eax, byte [ebp + edi - 0x13c]
xor dh, byte [ebp + eax - 0x13c]
movsx eax, dh
mov word [ebp - 0x1a4], ax
xor esi, esi
mov al, byte [ebp - 0x24]
add al, byte [ebp - 0x2c]
movzx edi, dl
mov dword [ebp - 0x38], edi
mov ecx, dword [ebp - 0x30]
mov ebx, esi
mov dl, byte [ecx + esi*2 + 0xe]
mov cl, byte [ecx + esi*2 + 0xf]
movzx esi, byte [ebp + edi - 0x13c]
mov dword [ebp - 0x2c], esi
mov byte [ebp - 0x24], al
movzx eax, al
mov dword [ebp - 0x34], eax
mov ch, byte [ebp + eax - 0x13c]
mov byte [ebp + edi - 0x13c], ch
movzx edi, dh
mov ch, byte [ebp + edi - 0x13c]
mov byte [ebp + eax - 0x13c], ch
movzx esi, byte [ebp - 0x28]
mov ch, byte [ebp + esi - 0x13c]
mov byte [ebp + edi - 0x13c], ch
mov eax, dword [ebp - 0x2c]
mov byte [ebp + esi - 0x13c], al
mov ch, byte [ebp - 0x20]
add ch, byte [ebp + eax - 0x13c]
mov esi, eax
movzx eax, byte [ebp + edi - 0x13c]
mov edi, dword [ebp - 0x38]
movzx edi, byte [ebp + edi - 0x13c]
add edi, eax
mov byte [ebp - 0x20], ch
movzx eax, ch
movzx eax, byte [ebp + eax - 0x13c]
add eax, edi
add cl, 0x28
shl dl, 4
add dl, 0xd0
or dl, cl
mov ecx, dword [ebp - 0x34]
movzx ecx, byte [ebp + ecx - 0x13c]
add ecx, esi
mov edi, 0xff
and ecx, edi
mov dh, byte [ebp + ecx - 0x13c]
xor dh, dl
and eax, edi
movzx eax, byte [ebp + eax - 0x13c]
xor dh, byte [ebp + eax - 0x13c]
movsx eax, dh
mov word [ebp + ebx*2 - 0x1a2], ax
mov eax, dword [ebp - 0x28]
inc al
mov dword [ebp - 0x28], eax
inc ebx
mov esi, ebx
cmp ebx, 6
jne 0x42fb3a
mov word [ebp - 0x196], 0
mov dword [ebp - 0x10], 0xffffffff
push 4
call fcn.005db3dd
add esp, 4
mov dword [ebp - 0x144], eax
mov dword [ebp - 0x10], 0
lea eax, [ebp - 0x1ae]
lea ecx, [ebp - 0x13c]
push eax
call fcn.00406642
mov ecx, dword [ebp - 0x144]
mov dword [ecx], 0
mov dword [ebp - 0x10], 1
push 2
lea eax, [ebp - 0x13c]
push eax
call fcn.0044527c
push dword [ebp - 0x124]
call fcn.005fd8d5
add esp, 4
mov ecx, dword [ebp - 0x128]
cmp ecx, 8
mov esi, dword [ebp - 0x144]
lea edi, [ebp - 0x13c]
jb 0x42fce2
mov eax, dword [ebp - 0x13c]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x42fcd8
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x431e32
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.005db412
add esp, 8
xorpd xmm2, xmm2
movsd xmm4, qword [0x6142f0]
movsd xmm5, qword [str.fffffv__j]
movsd xmm6, qword [0x614300]
xorpd xmm0, xmm0
movsd xmm3, qword [0x6142c0]
movapd xmm7, xmm2
mulsd xmm7, qword [0x6142e8]
mulsd xmm7, xmm2
movapd xmm1, xmm2
mulsd xmm1, xmm2
subsd xmm7, xmm1
movapd xmm1, xmm2
mulsd xmm1, xmm3
mulsd xmm1, xmm2
addsd xmm1, qword [0x6124e8]
divsd xmm7, xmm1
addsd xmm7, xmm0
movapd xmm1, xmm2
mulsd xmm1, xmm4
addsd xmm1, xmm7
movapd xmm0, xmm5
cmpltsd xmm0, xmm7
andpd xmm1, xmm0
andnpd xmm0, xmm7
movsd xmm7, qword [0x612280]
orpd xmm0, xmm1
addsd xmm2, xmm7
ucomisd xmm6, xmm2
ja 0x42fd0a
xorpd xmm1, xmm1
leave
ucomisd xmm1, xmm0
jbe 0x42fdcd
cmp esp, dword [ebx - 0x54c659c1]
scasb al, byte es:[edi]
inc edx
movsd dword es:[edi], dword [esi]
xor al, 0xa8
inc eax
mov al, byte [0xa033ae36]
xor eax, 0x3ba441a3
mov byte [0xa236aa37], al
lahf
cmp esp, dword [edx - 0x55cc53c2]
xor al, 0xa1
cmp ch, byte [ebp + esi + 0x68a83ea0]
imul esi, dword cs:[edx + 0x5b], 0x41314b3a
imul esi, dword ss:[eax], 0x23
inc ecx
and esi, dword [edi + 0x3a]
je 0x42fdea
cmp eax, 0x45c7593d
invalid
lea eax, [0x42fd7f]
mov dword [ebp - 0x34], eax
movdqa xmm1, xmmword [0x612110]
xor eax, eax
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [ebp + eax - 0x13c], xmm1
jg 0x42fd78
add eax, 0xfffffec4
add eax, 0x10
paddb xmm1, xmm2
cmp eax, 0x100
jne 0x42fde8
movsd xmm1, qword [0x612130]
movapd xmm2, xmm0
subsd xmm2, xmm1
cvttsd2si eax, xmm2
lea ecx, [0x42fdab]
mov dword [ebp - 0x30], ecx
xor eax, 0x80000000
cvttsd2si ecx, xmm0
ucomisd xmm0, xmm1
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], ecx
shr ecx, 0x10
mov dword [ebp - 0x2c], ecx
mov esi, 0xff
xor ecx, ecx
xor ebx, ebx
xor edx, edx
inc edx
cmp esi, 2
jb 0x42fe58
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, esi
jb 0x42fe51
mov dword [ebp - 0x20], esi
mov esi, 0xc
cmp ecx, 3
ja case.default.0x42fe65
jmp dword [ecx*4 + 0x61460c]
movzx eax, bl
add eax, ebp
add eax, 0xfffffec4
mov ebx, dword [ebp - 0x24]
jmp 0x42fe97
movzx eax, bl
add eax, ebp
add eax, 0xfffffec4
mov ebx, dword [ebp - 0x2c]
jmp 0x42fe97
movzx eax, bl
add eax, ebp
add eax, 0xfffffec4
mov ebx, dword [ebp - 0x28]
jmp 0x42febc
movzx eax, bl
add eax, ebp
add eax, 0xfffffec4
mov ebx, dword [ebp - 0x24]
mov bl, bh
jmp 0x42febc
movzx eax, bl
mov bl, byte [ebp + eax - 0x13c]
mov eax, dword [ebp - 0x30]
add eax, ecx
add eax, 0xfffffffc
add bl, byte [eax]
inc ecx
movzx eax, bl
add bl, 0x1a
cmp ecx, 0x19
movzx ebx, bl
cmovbe ebx, eax
mov eax, 0
cmova ecx, eax
movzx edi, bl
mov eax, edx
and eax, edi
dec esi
je 0x42feeb
cmp eax, dword [ebp - 0x20]
ja 0x42fe60
jmp 0x42fef2
xor edx, edx
div dword [ebp - 0x20]
mov eax, edx
mov esi, dword [ebp - 0x20]
cmp esi, eax
je 0x42ff23
mov dl, byte [ebp + esi - 0x13c]
xor dl, byte [ebp + eax - 0x13c]
mov byte [ebp + esi - 0x13c], dl
xor dl, byte [ebp + eax - 0x13c]
mov byte [ebp + eax - 0x13c], dl
xor byte [ebp + esi - 0x13c], dl
dec esi
jne 0x42fe46
mov cl, byte [ebp - 0x13b]
mov byte [ebp - 0x30], cl
mov al, byte [ebp - 0x137]
mov byte [ebp - 0x20], al
movzx eax, cl
movzx ebx, byte [ebp + edi - 0x13c]
mov edx, dword [ebp - 0x34]
mov cl, byte [edx]
mov edi, edx
mov dword [ebp - 0x3c], eax
mov dl, byte [ebp + eax - 0x13c]
add dl, byte [ebp - 0x139]
mov ch, byte [edi + 1]
movzx edi, dl
mov dh, byte [ebp + edi - 0x13c]
movzx esi, byte [ebp - 0x135]
mov eax, ebx
mov dword [ebp - 0x24], ebx
movzx ebx, byte [ebp + ebx - 0x13c]
mov byte [ebp + eax - 0x13c], dh
mov eax, esi
mov dword [ebp - 0x2c], esi
mov dh, byte [ebp + esi - 0x13c]
mov byte [ebp + edi - 0x13c], dh
mov dh, byte [ebp - 0x30]
inc dh
movzx esi, dh
mov dh, byte [ebp + esi - 0x13c]
mov byte [ebp + eax - 0x13c], dh
mov byte [ebp + esi - 0x13c], bl
add ch, 0x61
shl cl, 4
add cl, 0xd0
or cl, ch
movzx esi, byte [ebp + edi - 0x13c]
add esi, ebx
mov edi, ebx
mov eax, 0xff
and esi, eax
movzx eax, cl
mov dword [ebp - 0x28], eax
xor cl, byte [ebp + esi - 0x13c]
mov al, byte [ebp - 0x20]
add al, byte [ebp + ebx - 0x13c]
mov byte [ebp - 0x20], al
mov esi, dword [ebp - 0x2c]
movzx esi, byte [ebp + esi - 0x13c]
mov ebx, dword [ebp - 0x24]
movzx ebx, byte [ebp + ebx - 0x13c]
add ebx, esi
movzx esi, al
movzx esi, byte [ebp + esi - 0x13c]
add esi, ebx
mov eax, 0xff
and esi, eax
movzx esi, byte [ebp + esi - 0x13c]
xor cl, byte [ebp + esi - 0x13c]
mov eax, edi
add dl, al
mov edi, dword [ebp - 0x34]
mov dh, byte [edi + 2]
mov al, byte [edi + 3]
mov byte [ebp - 0x2c], al
movzx edi, dl
mov ch, byte [ebp + edi - 0x13c]
mov eax, dword [ebp - 0x28]
movzx esi, byte [ebp + eax - 0x13c]
mov dword [ebp - 0x24], esi
mov byte [ebp + eax - 0x13c], ch
movzx esi, cl
mov bl, byte [ebp + esi - 0x13c]
mov byte [ebp + edi - 0x13c], bl
mov bl, byte [ebp - 0x30]
add bl, 2
movzx ebx, bl
mov ah, byte [ebp + ebx - 0x13c]
mov byte [ebp + esi - 0x13c], ah
mov ecx, dword [ebp - 0x24]
mov byte [ebp + ebx - 0x13c], cl
movzx eax, byte [ebp + esi - 0x13c]
mov esi, dword [ebp - 0x28]
movzx ebx, byte [ebp + esi - 0x13c]
add ebx, eax
mov al, byte [ebp - 0x20]
add al, byte [ebp + ecx - 0x13c]
mov byte [ebp - 0x20], al
movzx ecx, al
movzx ecx, byte [ebp + ecx - 0x13c]
add ecx, ebx
shl dh, 4
add dh, 0xd0
mov bl, byte [ebp - 0x2c]
add bl, 0x61
or bl, dh
movzx esi, byte [ebp + edi - 0x13c]
add esi, dword [ebp - 0x24]
mov edi, 0xff
and esi, edi
mov ah, byte [ebp + esi - 0x13c]
xor ah, bl
and ecx, edi
movzx ecx, byte [ebp + ecx - 0x13c]
xor ah, byte [ebp + ecx - 0x13c]
add dl, byte [ebp - 0x24]
mov byte [ebp - 0x182], ah
mov ecx, dword [ebp - 0x34]
mov dh, byte [ecx + 4]
mov al, byte [ecx + 5]
mov byte [ebp - 0x28], al
movzx esi, bl
mov dword [ebp - 0x2c], esi
mov byte [ebp - 0x24], dl
movzx edi, dl
mov bl, byte [ebp + edi - 0x13c]
movzx ecx, byte [ebp + esi - 0x13c]
mov byte [ebp + esi - 0x13c], bl
movzx ebx, ah
mov ah, byte [ebp + ebx - 0x13c]
mov byte [ebp + edi - 0x13c], ah
mov al, byte [ebp - 0x30]
add al, 3
movzx esi, al
mov ah, byte [ebp + esi - 0x13c]
mov byte [ebp + ebx - 0x13c], ah
mov byte [ebp + esi - 0x13c], cl
movzx esi, byte [ebp + ebx - 0x13c]
mov eax, dword [ebp - 0x2c]
movzx ebx, byte [ebp + eax - 0x13c]
add ebx, esi
mov al, byte [ebp - 0x20]
add al, byte [ebp + ecx - 0x13c]
mov byte [ebp - 0x20], al
movzx esi, al
movzx esi, byte [ebp + esi - 0x13c]
add esi, ebx
mov al, byte [ebp - 0x28]
add al, 0x61
shl dh, 4
add dh, 0xd0
or dh, al
movzx ebx, byte [ebp + edi - 0x13c]
mov edi, ecx
add ebx, ecx
mov ecx, 0xff
and ebx, ecx
mov ah, byte [ebp + ebx - 0x13c]
xor ah, dh
and esi, ecx
movzx esi, byte [ebp + esi - 0x13c]
xor ah, byte [ebp + esi - 0x13c]
mov byte [ebp - 0x181], ah
mov dword [ebp - 0x30], 0
mov cl, byte [ebp - 0x24]
mov ebx, edi
add cl, bl
mov edi, dword [ebp - 0x34]
movzx ebx, dh
mov dword [ebp - 0x2c], ebx
mov esi, dword [ebp - 0x30]
mov dh, byte [edi + esi*2 + 6]
mov al, byte [edi + esi*2 + 7]
mov byte [ebp - 0x38], al
movzx edi, byte [ebp + ebx - 0x13c]
mov dword [ebp - 0x140], edi
mov byte [ebp - 0x24], cl
movzx edi, cl
mov dword [ebp - 0x28], edi
mov dl, byte [ebp + edi - 0x13c]
mov byte [ebp + ebx - 0x13c], dl
movzx ecx, ah
mov dl, byte [ebp + ecx - 0x13c]
mov byte [ebp + edi - 0x13c], dl
mov ebx, dword [ebp - 0x3c]
add ebx, esi
add ebx, 4
mov edi, 0xff
and ebx, edi
mov dl, byte [ebp + ebx - 0x13c]
mov byte [ebp + ecx - 0x13c], dl
mov eax, dword [ebp - 0x140]
mov byte [ebp + ebx - 0x13c], al
mov dl, byte [ebp - 0x20]
mov ebx, eax
add dl, byte [ebp + eax - 0x13c]
movzx ecx, byte [ebp + ecx - 0x13c]
mov edi, dword [ebp - 0x2c]
movzx edi, byte [ebp + edi - 0x13c]
add edi, ecx
mov byte [ebp - 0x20], dl
movzx ecx, dl
movzx ecx, byte [ebp + ecx - 0x13c]
add ecx, edi
mov al, byte [ebp - 0x38]
add al, 0x61
shl dh, 4
add dh, 0xd0
or dh, al
mov eax, dword [ebp - 0x28]
movzx eax, byte [ebp + eax - 0x13c]
mov edi, ebx
add eax, ebx
mov ebx, 0xff
and eax, ebx
mov ah, byte [ebp + eax - 0x13c]
xor ah, dh
and ecx, ebx
movzx ecx, byte [ebp + ecx - 0x13c]
xor ah, byte [ebp + ecx - 0x13c]
mov byte [ebp + esi - 0x180], ah
inc esi
mov dword [ebp - 0x30], esi
cmp esi, 8
jne 0x4301ce
mov ecx, dword [ebp - 0x34]
mov al, byte [ecx + 0x16]
mov byte [ebp - 0x28], al
mov al, byte [ecx + 0x17]
mov byte [ebp - 0x2c], al
mov dl, byte [ebp - 0x24]
mov ecx, edi
add dl, cl
movzx ecx, dh
mov dword [ebp - 0x24], ecx
movzx esi, dl
mov dh, byte [ebp + esi - 0x13c]
movzx ebx, byte [ebp + ecx - 0x13c]
mov byte [ebp + ecx - 0x13c], dh
movzx edi, ah
mov ah, byte [ebp + edi - 0x13c]
mov byte [ebp + esi - 0x13c], ah
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x30]
add ecx, eax
add ecx, 4
mov eax, 0xff
and ecx, eax
mov ah, byte [ebp + ecx - 0x13c]
mov byte [ebp + edi - 0x13c], ah
mov byte [ebp + ecx - 0x13c], bl
mov cl, byte [ebp - 0x2c]
add cl, 0x61
mov dh, byte [ebp - 0x28]
shl dh, 4
add dh, 0xd0
or dh, cl
movzx ecx, byte [ebp + esi - 0x13c]
add ecx, ebx
mov esi, 0xff
and ecx, esi
movzx esi, dh
mov dword [ebp - 0x28], esi
xor dh, byte [ebp + ecx - 0x13c]
movzx ecx, byte [ebp + edi - 0x13c]
mov eax, dword [ebp - 0x24]
movzx esi, byte [ebp + eax - 0x13c]
add esi, ecx
mov al, byte [ebp - 0x20]
add al, byte [ebp + ebx - 0x13c]
movzx ecx, al
movzx ecx, byte [ebp + ecx - 0x13c]
add ecx, esi
mov esi, 0xff
and ecx, esi
movzx ecx, byte [ebp + ecx - 0x13c]
xor dh, byte [ebp + ecx - 0x13c]
add dl, bl
mov byte [ebp - 0x178], dh
mov ecx, dword [ebp - 0x34]
mov ah, byte [ecx + 0x18]
mov cl, byte [ecx + 0x19]
mov byte [ebp - 0x2c], cl
mov byte [ebp - 0x24], dl
movzx ebx, dl
mov dword [ebp - 0x38], ebx
mov dl, byte [ebp + ebx - 0x13c]
mov esi, dword [ebp - 0x28]
movzx ecx, byte [ebp + esi - 0x13c]
mov byte [ebp + esi - 0x13c], dl
movzx edi, dh
mov dh, byte [ebp + edi - 0x13c]
mov byte [ebp + ebx - 0x13c], dh
mov ebx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x3c]
lea esi, [edx + ebx]
add esi, 5
mov edx, 0xff
and esi, edx
mov dh, byte [ebp + esi - 0x13c]
mov byte [ebp + edi - 0x13c], dh
mov byte [ebp + esi - 0x13c], cl
movzx esi, byte [ebp + edi - 0x13c]
mov edx, dword [ebp - 0x28]
movzx edx, byte [ebp + edx - 0x13c]
add edx, esi
add al, byte [ebp + ecx - 0x13c]
mov edi, ecx
mov byte [ebp - 0x20], al
movzx esi, al
movzx ecx, byte [ebp + esi - 0x13c]
add ecx, edx
mov al, byte [ebp - 0x2c]
add al, 0x61
shl ah, 4
add ah, 0xd0
or ah, al
mov edx, dword [ebp - 0x38]
movzx esi, byte [ebp + edx - 0x13c]
mov edx, edi
add esi, edi
mov edx, 0xff
and esi, edx
mov dh, byte [ebp + esi - 0x13c]
xor dh, ah
mov esi, 0xff
and ecx, esi
movzx esi, byte [ebp + ecx - 0x13c]
xor dh, byte [ebp + esi - 0x13c]
mov ecx, dword [ebp - 0x3c]
add ecx, ebx
mov byte [ebp - 0x177], dh
add cl, 6
mov dword [ebp - 0x30], ecx
xor esi, esi
mov al, byte [ebp - 0x24]
mov ecx, edi
add al, cl
movzx edi, ah
mov ecx, dword [ebp - 0x34]
mov dl, byte [ecx + esi*2 + 0x1a]
mov byte [ebp - 0x2c], dl
mov cl, byte [ecx + esi*2 + 0x1b]
mov byte [ebp - 0x38], cl
movzx ecx, byte [ebp + edi - 0x13c]
mov dword [ebp - 0x28], ecx
mov byte [ebp - 0x24], al
movzx ecx, al
mov dl, byte [ebp + ecx - 0x13c]
mov byte [ebp + edi - 0x13c], dl
movzx edx, dh
mov bl, byte [ebp + edx - 0x13c]
mov byte [ebp + ecx - 0x13c], bl
movzx ebx, byte [ebp - 0x30]
mov al, byte [ebp + ebx - 0x13c]
mov byte [ebp + edx - 0x13c], al
mov eax, dword [ebp - 0x28]
mov byte [ebp + ebx - 0x13c], al
mov bl, byte [ebp - 0x20]
add bl, byte [ebp + eax - 0x13c]
movzx edx, byte [ebp + edx - 0x13c]
movzx edi, byte [ebp + edi - 0x13c]
add edi, edx
mov byte [ebp - 0x20], bl
movzx edx, bl
movzx ebx, byte [ebp + edx - 0x13c]
add ebx, edi
mov al, byte [ebp - 0x38]
add al, 0x61
mov ah, byte [ebp - 0x2c]
shl ah, 4
add ah, 0xd0
or ah, al
movzx ecx, byte [ebp + ecx - 0x13c]
mov edx, dword [ebp - 0x28]
mov edi, edx
add ecx, edx
mov edx, 0xff
and ecx, edx
mov dh, byte [ebp + ecx - 0x13c]
xor dh, ah
mov ecx, 0xff
and ebx, ecx
movzx ecx, byte [ebp + ebx - 0x13c]
xor dh, byte [ebp + ecx - 0x13c]
mov byte [ebp + esi - 0x176], dh
inc esi
mov ecx, dword [ebp - 0x30]
inc cl
mov dword [ebp - 0x30], ecx
cmp esi, 0xa
jne 0x43049e
mov byte [ebp - 0x16d], 0
mov dword [ebp - 0x10], 0xffffffff
mov esi, dword [ebp - 0x144]
lea edi, [ebp - 0x13c]
lea eax, [ebp - 0x182]
mov ecx, edi
push eax
call fcn.00401278
mov dword [ebp - 0x10], 2
mov ecx, esi
push 0
push edi
call fcn.004454fe
mov esi, eax
push dword [ebp - 0x124]
call fcn.005fd8d5
add esp, 4
mov ecx, dword [ebp - 0x128]
cmp ecx, 8
mov edi, dword [ebp - 0x144]
jb 0x430621
mov eax, dword [ebp - 0x13c]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x430617
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x431e32
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.005db412
add esp, 8
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x16c]
push eax
push dword [ebp + 0xc]
push 0
call esi
test eax, eax
je 0x43075d
mov dword [ebp - 0x194], 1
mov eax, dword [ebp - 0x16c]
mov ecx, dword [ebp - 0x168]
mov dword [ebp - 0x18c], ecx
mov dword [ebp - 0x190], eax
xor eax, eax
cmp dword [ebp + 0x10], 0
setne al
add eax, eax
mov dword [ebp - 0x188], eax
xorpd xmm3, xmm3
movsd xmm5, qword [0x614320]
movsd xmm6, qword [0x612498]
movsd xmm7, qword [0x614328]
xorpd xmm0, xmm0
movsd xmm4, qword [0x612160]
movapd xmm1, xmm3
mulsd xmm1, qword [0x614308]
mulsd xmm1, xmm3
movapd xmm2, xmm3
mulsd xmm2, xmm3
subsd xmm1, xmm2
movapd xmm2, xmm3
mulsd xmm2, qword [0x614310]
mulsd xmm2, xmm3
addsd xmm2, qword [0x614318]
divsd xmm1, xmm2
addsd xmm1, xmm0
movapd xmm2, xmm3
mulsd xmm2, xmm5
addsd xmm2, xmm1
movapd xmm0, xmm6
cmpltsd xmm0, xmm1
andpd xmm2, xmm0
andnpd xmm0, xmm1
orpd xmm0, xmm2
addsd xmm3, xmm4
ucomisd xmm7, xmm3
ja 0x430699
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x430764
pop eax
pop ebp
push edi
cmp byte [ebx + 0x5c], dl
dec eax
sub bh, byte [eax]
inc edx
and byte [ecx + 0x5e], ch
ja 0x43074b
cmp eax, 0x5e724270
and al, 0x57
inc ebx
pop bx
push 0x3f8e3d22
mov al, byte [ecx - 0x69]
inc edi
mov edi, dword [edi]
xchg edi, eax
dec ecx
mov es, word [ebp + ecx*4 + 0x3f]
xchg ebp, eax
inc ebp
lea edi, [esi]
nop
inc edx
mov word [eax + ebx*4 + 0x40], es
xchg esp, eax
inc ecx
cwde
inc esp
cdq
inc eax
pop dword [ebp - 0x72]
xchg ebx, eax
cmp al, 0x90
xchg edi, eax
cmp edx, dword [edi + 0x45c78e49]
invalid
xor ebx, ebx
jmp 0x431e1a
lea edx, [0x430725]
movdqa xmm1, xmmword [0x612110]
xor eax, eax
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [ebp + eax - 0x13c], xmm1
add eax, 0x10
paddb xmm1, xmm2
cmp eax, 0x100
jne 0x43077c
movsd xmm1, qword [0x612130]
movapd xmm2, xmm0
subsd xmm2, xmm1
cvttsd2si eax, xmm2
lea ecx, [0x43070a]
mov dword [ebp - 0x30], ecx
xor eax, 0x80000000
cvttsd2si ecx, xmm0
ucomisd xmm0, xmm1
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], ecx
shr ecx, 0x10
mov dword [ebp - 0x34], ecx
mov esi, 0xff
xor ecx, ecx
xor ebx, ebx
mov dword [ebp - 0x28], edx
xor edx, edx
inc edx
cmp esi, 2
jb 0x4307ef
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, esi
jb 0x4307e8
mov dword [ebp - 0x20], esi
mov esi, 0xc
cmp ecx, 3
ja case.default.0x4307fc
jmp dword [ecx*4 + 0x61461c]
movzx eax, bl
add eax, ebp
add eax, 0xfffffec4
mov ebx, dword [ebp - 0x24]
jmp 0x43082e
movzx eax, bl
add eax, ebp
add eax, 0xfffffec4
mov ebx, dword [ebp - 0x34]
jmp 0x43082e
movzx eax, bl
add eax, ebp
add eax, 0xfffffec4
mov ebx, dword [ebp - 0x2c]
jmp 0x430853
movzx eax, bl
add eax, ebp
add eax, 0xfffffec4
mov ebx, dword [ebp - 0x24]
mov bl, bh
jmp 0x430853
movzx eax, bl
mov bl, byte [ebp + eax - 0x13c]
mov eax, dword [ebp - 0x30]
add eax, ecx
add eax, 0xfffffffc
add bl, byte [eax]
inc ecx
movzx eax, bl
add bl, 0x1f
cmp ecx, 0x1e
movzx ebx, bl
cmovbe ebx, eax
mov eax, 0
cmova ecx, eax
movzx edi, bl
mov eax, edx
and eax, edi
dec esi
je 0x430882
cmp eax, dword [ebp - 0x20]
ja 0x4307f7
jmp 0x430889
xor edx, edx
div dword [ebp - 0x20]
mov eax, edx
mov esi, dword [ebp - 0x20]
cmp esi, eax
mov edx, dword [ebp - 0x28]
je 0x4308c0
mov dl, byte [ebp + esi - 0x13c]
xor dl, byte [ebp + eax - 0x13c]
mov byte [ebp + esi - 0x13c], dl
xor dl, byte [ebp + eax - 0x13c]
mov byte [ebp + eax - 0x13c], dl
xor byte [ebp + esi - 0x13c], dl
mov edx, dword [ebp - 0x28]
dec esi
jne 0x4307dd
movzx ecx, byte [ebp - 0x13b]
mov dword [ebp - 0x2c], ecx
mov al, byte [ebp - 0x137]
mov byte [ebp - 0x24], al
movzx edi, byte [ebp + edi - 0x13c]
mov eax, edx
mov dl, byte [edx]
mov dh, byte [eax + 1]
mov byte [ebp - 0x20], dh
mov dh, byte [ebp + ecx - 0x13c]
add dh, byte [ebp - 0x139]
mov byte [ebp - 0x30], dh
movzx ebx, dh
mov dh, byte [ebp + ebx - 0x13c]
movzx esi, byte [ebp - 0x135]
movzx eax, byte [ebp + edi - 0x13c]
mov byte [ebp + edi - 0x13c], dh
mov dh, byte [ebp + esi - 0x13c]
mov byte [ebp + ebx - 0x13c], dh
mov dh, cl
inc dh
movzx ecx, dh
mov dh, byte [ebp + ecx - 0x13c]
mov byte [ebp + esi - 0x13c], dh
mov dh, byte [ebp - 0x24]
mov byte [ebp + ecx - 0x13c], al
movzx ecx, byte [ebp + esi - 0x13c]
movzx edi, byte [ebp + edi - 0x13c]
add edi, ecx
add dh, byte [ebp + eax - 0x13c]
mov byte [ebp - 0x24], dh
movzx ecx, dh
movzx esi, byte [ebp + ecx - 0x13c]
add esi, edi
mov cl, byte [ebp - 0x20]
add cl, 0x76
shl dl, 4
add dl, 0x60
or dl, cl
movzx ecx, byte [ebp + ebx - 0x13c]
mov dword [ebp - 0x20], eax
add ecx, eax
mov eax, 0xff
and ecx, eax
mov cl, byte [ebp + ecx - 0x13c]
xor cl, dl
and esi, eax
movzx esi, byte [ebp + esi - 0x13c]
xor cl, byte [ebp + esi - 0x13c]
mov eax, dword [ebp - 0x2c]
add al, 2
movzx eax, al
mov dword [ebp - 0x34], eax
xor edi, edi
mov bl, byte [ebp - 0x30]
add bl, byte [ebp - 0x20]
mov byte [ebp - 0x30], bl
mov eax, dword [ebp - 0x28]
mov ch, byte [eax + edi*2 + 2]
movzx edx, dl
mov dword [ebp - 0x2c], edx
mov dl, byte [eax + edi*2 + 3]
mov dword [ebp - 0x38], edi
movzx ebx, bl
mov dh, byte [ebp + ebx - 0x13c]
mov dword [ebp - 0x140], ebx
mov esi, dword [ebp - 0x2c]
movzx eax, byte [ebp + esi - 0x13c]
mov dword [ebp - 0x20], eax
mov byte [ebp + esi - 0x13c], dh
movzx esi, cl
mov al, byte [ebp + esi - 0x13c]
mov byte [ebp + ebx - 0x13c], al
mov eax, dword [ebp - 0x34]
add eax, edi
mov edi, 0xff
and eax, edi
mov cl, byte [ebp + eax - 0x13c]
mov byte [ebp + esi - 0x13c], cl
mov ebx, dword [ebp - 0x20]
mov byte [ebp + eax - 0x13c], bl
movzx eax, byte [ebp + esi - 0x13c]
mov esi, dword [ebp - 0x2c]
movzx edi, byte [ebp + esi - 0x13c]
add edi, eax
mov al, byte [ebp - 0x24]
add al, byte [ebp + ebx - 0x13c]
mov byte [ebp - 0x24], al
movzx eax, al
movzx eax, byte [ebp + eax - 0x13c]
add eax, edi
shl ch, 4
add ch, 0x60
add dl, 0x76
or dl, ch
mov ecx, dword [ebp - 0x140]
movzx ecx, byte [ebp + ecx - 0x13c]
add ecx, ebx
mov esi, 0xff
and ecx, esi
mov cl, byte [ebp + ecx - 0x13c]
xor cl, dl
and eax, esi
movzx eax, byte [ebp + eax - 0x13c]
xor cl, byte [ebp + eax - 0x13c]
mov eax, dword [ebp - 0x38]
mov byte [ebp + eax - 0x1c4], cl
lea edi, [eax + 1]
cmp edi, 9
jne 0x4309bb
add dword [ebp - 0x34], edi
xor edi, edi
mov dh, byte [ebp - 0x30]
add dh, byte [ebp - 0x20]
mov byte [ebp - 0x30], dh
mov eax, dword [ebp - 0x28]
mov ch, byte [eax + edi*2 + 0x14]
mov byte [ebp - 0x2c], ch
movzx esi, dl
mov dl, byte [eax + edi*2 + 0x15]
movzx eax, byte [ebp + esi - 0x13c]
mov dword [ebp - 0x20], eax
movzx eax, dh
mov dword [ebp - 0x38], eax
mov dh, byte [ebp + eax - 0x13c]
mov byte [ebp + esi - 0x13c], dh
movzx ebx, cl
mov cl, byte [ebp + ebx - 0x13c]
mov byte [ebp + eax - 0x13c], cl
mov eax, dword [ebp - 0x34]
add eax, edi
mov ecx, 0xff
and eax, ecx
mov cl, byte [ebp + eax - 0x13c]
mov byte [ebp + ebx - 0x13c], cl
mov ecx, dword [ebp - 0x20]
mov byte [ebp + eax - 0x13c], cl
mov al, byte [ebp - 0x24]
add al, byte [ebp + ecx - 0x13c]
movzx ecx, byte [ebp + ebx - 0x13c]
movzx esi, byte [ebp + esi - 0x13c]
add esi, ecx
mov byte [ebp - 0x24], al
movzx eax, al
movzx eax, byte [ebp + eax - 0x13c]
add eax, esi
mov cl, byte [ebp - 0x2c]
shl cl, 4
add cl, 0x60
add dl, 0x76
or dl, cl
mov ecx, dword [ebp - 0x38]
movzx ecx, byte [ebp + ecx - 0x13c]
add ecx, dword [ebp - 0x20]
mov esi, 0xff
and ecx, esi
mov cl, byte [ebp + ecx - 0x13c]
xor cl, dl
and eax, esi
movzx eax, byte [ebp + eax - 0x13c]
xor cl, byte [ebp + eax - 0x13c]
mov byte [ebp + edi - 0x1bb], cl
inc edi
cmp edi, 0xb
jne 0x430ab8
mov dh, byte [ebp - 0x30]
add dh, byte [ebp - 0x20]
mov eax, dword [ebp - 0x34]
add eax, edi
movzx edi, dl
mov dword [ebp - 0x20], edi
mov esi, dword [ebp - 0x28]
mov dl, byte [esi + 0x2a]
mov ch, byte [esi + 0x2b]
movzx esi, dh
mov dh, byte [ebp + esi - 0x13c]
movzx ebx, byte [ebp + edi - 0x13c]
mov byte [ebp + edi - 0x13c], dh
movzx edi, cl
mov dword [ebp - 0x30], edi
mov cl, byte [ebp + edi - 0x13c]
mov byte [ebp + esi - 0x13c], cl
mov edi, 0xff
and eax, edi
mov cl, byte [ebp + eax - 0x13c]
mov edi, dword [ebp - 0x30]
mov byte [ebp + edi - 0x13c], cl
mov byte [ebp + eax - 0x13c], bl
mov dh, byte [ebp - 0x24]
add dh, byte [ebp + ebx - 0x13c]
movzx esi, byte [ebp + esi - 0x13c]
add esi, ebx
add ch, 0x76
shl dl, 4
add dl, 0x60
or dl, ch
mov ebx, 0xff
and esi, ebx
xor dl, byte [ebp + esi - 0x13c]
movzx ecx, byte [ebp + edi - 0x13c]
mov eax, dword [ebp - 0x20]
movzx eax, byte [ebp + eax - 0x13c]
add eax, ecx
movzx ecx, dh
movzx ecx, byte [ebp + ecx - 0x13c]
add ecx, eax
and ecx, ebx
movzx eax, byte [ebp + ecx - 0x13c]
xor dl, byte [ebp + eax - 0x13c]
mov byte [ebp - 0x1b0], dl
mov byte [ebp - 0x1af], 0
mov dword [ebp - 0x10], 0xffffffff
mov edi, dword [ebp - 0x144]
lea eax, [ebp - 0x1c4]
lea esi, [ebp - 0x13c]
mov ecx, esi
push eax
call fcn.00401278
mov dword [ebp - 0x10], 3
mov ecx, edi
push 0
push esi
call fcn.004454fe
mov esi, eax
push dword [ebp - 0x124]
call fcn.005fd8d5
add esp, 4
mov ecx, dword [ebp - 0x128]
cmp ecx, 8
jb 0x430cf8
mov eax, dword [ebp - 0x13c]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x430cee
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x431e32
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.005db412
add esp, 8
mov dword [ebp - 0x10], 0xffffffff
xor ebx, ebx
lea eax, [ebp - 0x194]
push ebx
push ebx
push 0x10
push eax
push ebx
push dword [ebp + 8]
call esi
test eax, eax
je 0x431e1a
xorpd xmm3, xmm3
movsd xmm5, qword [0x614348]
movsd xmm6, qword [0x614350]
movsd xmm7, qword [0x614358]
xorpd xmm0, xmm0
movsd xmm4, qword [0x612280]
movapd xmm1, xmm3
mulsd xmm1, qword [0x614330]
mulsd xmm1, xmm3
movapd xmm2, xmm3
mulsd xmm2, xmm3
subsd xmm1, xmm2
movapd xmm2, xmm3
mulsd xmm2, qword [0x614338]
mulsd xmm2, xmm3
addsd xmm2, qword [0x614340]
divsd xmm1, xmm2
addsd xmm1, xmm0
movapd xmm2, xmm3
mulsd xmm2, xmm5
addsd xmm2, xmm1
pop ecx
aad 0xf2
addps xmm2, xmm1
movapd xmm0, xmm6
movaps xmm0, xmm6
cmpltsd xmm0, xmm1
andpd xmm2, xmm0
ret 0x1c1
andps xmm2, xmm0
push esp
shl byte [esi + 0xf], 1
push ebp
shl dword [esi + 0xf], 0x56
andnpd xmm0, xmm1
andnps xmm0, xmm1
orpd xmm0, xmm2
addsd xmm3, xmm4
ucomisd xmm7, xmm3
ja 0x430d42
ret 0xff2
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x430df0
jne 0x430e28
sub eax, 0x4f722545
sub byte [esi + 0x36], dh
popal
pop esi
outsb dx, byte [esi]
and al, 0x29
push ebp
imul edi, dword [edi + 0x3d7e666f], 0x7d
push ebx
sub dword [esi + 0x70], esi
scasd eax, dword es:[edi]
jae 0x430d84
js 0x430d8b
mov ch, 0x7b
mov esp, 0xaf73bc6e
jo 0x430d90
jnp 0x430d94
outsb dx, byte [esi]
mov esp, 0xb270af73
jb 0x430d95
insd dword es:[edi], dx
mov edx, 0xb074ba78
jno 0x430d98
jno 0x430d9e
jb 0x430dd5
inc esi
add eax, 0x58d0000
ror dword [0x45890043], 1
int3
lea eax, [0x430dd1]
mov dword [ebp - 0x34], eax
movdqa xmm1, xmmword [0x612110]
xor eax, eax
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [ebp + eax - 0x13c], xmm1
add eax, 0x10
paddb xmm1, xmm2
cmp eax, 0x100
jne 0x430e0b
movsd xmm1, qword [0x612130]
movapd xmm2, xmm0
popal
add byte [esi + 0xf], ah
sub al, dl
subsd xmm2, xmm1
cvttsd2si eax, xmm2
lea ecx, [0x430db3]
mov dword [ebp - 0x30], ecx
xor eax, 0x80000000
cvttsd2si ecx, xmm0
ucomisd xmm0, xmm1
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], ecx
shr ecx, 0x10
mov dword [ebp - 0x2c], ecx
mov esi, 0xff
xor ecx, ecx
xor ebx, ebx
xor edx, edx
inc edx
cmp esi, 2
jb 0x430e7b
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, esi
jb 0x430e74
mov dword [ebp - 0x20], esi
mov esi, 0xc
cmp ecx, 3
ja case.default.0x430e88
jmp dword [ecx*4 + 0x61462c]
movzx eax, bl
add eax, ebp
add eax, 0xfffffec4
mov ebx, dword [ebp - 0x24]
jmp 0x430eba
movzx eax, bl
add eax, ebp
add eax, 0xfffffec4
mov ebx, dword [ebp - 0x2c]
jmp 0x430eba
movzx eax, bl
add eax, ebp
add eax, 0xfffffec4
mov ebx, dword [ebp - 0x28]
jmp 0x430edf
movzx eax, bl
add eax, ebp
add eax, 0xfffffec4
mov ebx, dword [ebp - 0x24]
mov bl, bh
jmp 0x430edf
movzx eax, bl
mov bl, byte [ebp + eax - 0x13c]
mov eax, dword [ebp - 0x30]
add eax, ecx
add eax, 0xfffffffc
add bl, byte [eax]
inc ecx
movzx eax, bl
add bl, 0x22
cmp ecx, 0x21
movzx ebx, bl
cmovbe ebx, eax
mov eax, 0
cmova ecx, eax
movzx edi, bl
mov eax, edx
and eax, edi
dec esi
je 0x430f0e
cmp eax, dword [ebp - 0x20]
ja 0x430e83
jmp 0x430f15
xor edx, edx
div dword [ebp - 0x20]
mov eax, edx
mov esi, dword [ebp - 0x20]
cmp esi, eax
je 0x430f46
mov dl, byte [ebp + esi - 0x13c]
xor dl, byte [ebp + eax - 0x13c]
mov byte [ebp + esi - 0x13c], dl
xor dl, byte [ebp + eax - 0x13c]
mov byte [ebp + eax - 0x13c], dl
xor byte [ebp + esi - 0x13c], dl
dec esi
jne 0x430e69
movzx ebx, byte [ebp - 0x13b]
mov al, byte [ebp - 0x137]
mov byte [ebp - 0x20], al
movzx eax, byte [ebp + edi - 0x13c]
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x34]
mov cl, byte [edx]
mov al, byte [edx + 1]
mov byte [ebp - 0x2c], al
mov ch, byte [ebp + ebx - 0x13c]
mov dword [ebp - 0x140], ebx
add ch, byte [ebp - 0x139]
mov byte [ebp - 0x24], ch
movzx eax, ch
mov ch, byte [ebp + eax - 0x13c]
mov dword [ebp - 0x38], eax
movzx esi, byte [ebp - 0x135]
mov dword [ebp - 0x3c], esi
mov esi, dword [ebp - 0x28]
movzx edi, byte [ebp + esi - 0x13c]
mov dword [ebp - 0x30], edi
mov byte [ebp + esi - 0x13c], ch
mov edi, dword [ebp - 0x3c]
mov ch, byte [ebp + edi - 0x13c]
mov byte [ebp + eax - 0x13c], ch
mov ch, bl
inc ch
movzx esi, ch
mov ch, byte [ebp + esi - 0x13c]
mov byte [ebp + edi - 0x13c], ch
mov eax, dword [ebp - 0x30]
mov byte [ebp + esi - 0x13c], al
mov ebx, eax
movzx esi, byte [ebp + edi - 0x13c]
mov eax, dword [ebp - 0x28]
movzx edi, byte [ebp + eax - 0x13c]
add edi, esi
mov al, byte [ebp - 0x20]
add al, byte [ebp + ebx - 0x13c]
mov byte [ebp - 0x20], al
movzx esi, al
movzx ebx, byte [ebp + esi - 0x13c]
add ebx, edi
mov al, byte [ebp - 0x2c]
add al, 0x93
shl cl, 4
add cl, 0x30
or cl, al
mov eax, dword [ebp - 0x38]
movzx esi, byte [ebp + eax - 0x13c]
mov edi, dword [ebp - 0x30]
add esi, edi
mov eax, 0xff
and esi, eax
mov ch, byte [ebp + esi - 0x13c]
xor ch, cl
and ebx, eax
movzx esi, byte [ebp + ebx - 0x13c]
xor ch, byte [ebp + esi - 0x13c]
mov eax, dword [ebp - 0x140]
mov ah, al
mov ebx, edi
add ah, 2
movzx eax, ah
mov dword [ebp - 0x38], eax
xor esi, esi
mov al, byte [ebp - 0x24]
add al, bl
movzx edi, cl
mov cl, byte [edx + esi*2 + 2]
mov dl, byte [edx + esi*2 + 3]
mov byte [ebp - 0x28], dl
mov byte [ebp - 0x24], al
movzx edx, al
mov dword [ebp - 0x2c], edx
mov al, byte [ebp + edx - 0x13c]
movzx ebx, byte [ebp + edi - 0x13c]
mov dword [ebp - 0x30], ebx
mov byte [ebp + edi - 0x13c], al
movzx ebx, ch
mov al, byte [ebp + ebx - 0x13c]
mov byte [ebp + edx - 0x13c], al
mov eax, dword [ebp - 0x38]
add eax, esi
mov edx, 0xff
and eax, edx
mov ch, byte [ebp + eax - 0x13c]
mov byte [ebp + ebx - 0x13c], ch
mov edx, dword [ebp - 0x30]
mov byte [ebp + eax - 0x13c], dl
movzx eax, byte [ebp + ebx - 0x13c]
mov ebx, edx
movzx edi, byte [ebp + edi - 0x13c]
add edi, eax
mov al, byte [ebp - 0x20]
add al, byte [ebp + edx - 0x13c]
mov byte [ebp - 0x20], al
movzx eax, al
movzx eax, byte [ebp + eax - 0x13c]
add eax, edi
mov ch, byte [ebp - 0x28]
add ch, 0x93
shl cl, 4
add cl, 0x30
or cl, ch
mov edx, dword [ebp - 0x2c]
movzx edx, byte [ebp + edx - 0x13c]
add edx, ebx
mov edi, 0xff
and edx, edi
mov ch, byte [ebp + edx - 0x13c]
mov edx, dword [ebp - 0x34]
xor ch, cl
and eax, edi
movzx eax, byte [ebp + eax - 0x13c]
xor ch, byte [ebp + eax - 0x13c]
mov byte [ebp + esi - 0x163], ch
inc esi
cmp esi, 5
jne 0x431069
mov al, byte [ebp - 0x24]
add al, bl
mov ah, byte [edx + 0xc]
mov bl, byte [edx + 0xd]
mov byte [ebp - 0x2c], bl
movzx edi, cl
mov dword [ebp - 0x28], edi
mov byte [ebp - 0x24], al
movzx ebx, al
mov dword [ebp - 0x3c], ebx
mov cl, byte [ebp + ebx - 0x13c]
mov edi, dword [ebp - 0x28]
movzx edi, byte [ebp + edi - 0x13c]
mov dword [ebp - 0x30], edi
mov edi, dword [ebp - 0x28]
mov byte [ebp + edi - 0x13c], cl
movzx edx, ch
mov cl, byte [ebp + edx - 0x13c]
mov byte [ebp + ebx - 0x13c], cl
mov ebx, dword [ebp - 0x38]
add ebx, esi
mov ecx, 0xff
and ebx, ecx
mov al, byte [ebp + ebx - 0x13c]
mov byte [ebp + edx - 0x13c], al
mov ecx, dword [ebp - 0x30]
mov byte [ebp + ebx - 0x13c], cl
movzx edx, byte [ebp + edx - 0x13c]
movzx edi, byte [ebp + edi - 0x13c]
add edi, edx
mov dword [ebp - 0x28], edi
mov al, byte [ebp - 0x20]
mov ebx, ecx
add al, byte [ebp + ecx - 0x13c]
mov byte [ebp - 0x20], al
movzx edx, al
movzx edi, byte [ebp + edx - 0x13c]
add edi, dword [ebp - 0x28]
mov al, byte [ebp - 0x2c]
add al, 0x93
shl ah, 4
add ah, 0x30
or ah, al
mov ecx, dword [ebp - 0x3c]
movzx edx, byte [ebp + ecx - 0x13c]
add edx, ebx
mov ecx, 0xff
and edx, ecx
mov dh, byte [ebp + edx - 0x13c]
xor dh, ah
and edi, ecx
movzx edi, byte [ebp + edi - 0x13c]
xor dh, byte [ebp + edi - 0x13c]
mov byte [ebp - 0x15e], dh
mov ecx, dword [ebp - 0x140]
add cl, 3
movzx ecx, cl
add ecx, esi
mov dword [ebp - 0x38], ecx
xor esi, esi
mov al, byte [ebp - 0x24]
add al, byte [ebp - 0x30]
movzx ecx, ah
mov edi, dword [ebp - 0x34]
mov dl, byte [edi + esi*2 + 0xe]
mov byte [ebp - 0x28], dl
mov dl, byte [edi + esi*2 + 0xf]
mov byte [ebp - 0x2c], dl
movzx edi, byte [ebp + ecx - 0x13c]
mov dword [ebp - 0x30], edi
mov byte [ebp - 0x24], al
movzx edi, al
mov dl, byte [ebp + edi - 0x13c]
mov byte [ebp + ecx - 0x13c], dl
movzx edx, dh
mov bl, byte [ebp + edx - 0x13c]
mov byte [ebp + edi - 0x13c], bl
mov ebx, dword [ebp - 0x38]
add ebx, esi
mov eax, 0xff
and ebx, eax
mov al, byte [ebp + ebx - 0x13c]
mov byte [ebp + edx - 0x13c], al
mov eax, dword [ebp - 0x30]
mov byte [ebp + ebx - 0x13c], al
mov bl, byte [ebp - 0x20]
add bl, byte [ebp + eax - 0x13c]
movzx edx, byte [ebp + edx - 0x13c]
movzx ecx, byte [ebp + ecx - 0x13c]
add ecx, edx
mov byte [ebp - 0x20], bl
movzx edx, bl
movzx ebx, byte [ebp + edx - 0x13c]
add ebx, ecx
mov al, byte [ebp - 0x2c]
add al, 0x93
mov ah, byte [ebp - 0x28]
shl ah, 4
add ah, 0x30
or ah, al
movzx ecx, byte [ebp + edi - 0x13c]
add ecx, dword [ebp - 0x30]
mov edi, 0xff
and ecx, edi
mov dh, byte [ebp + ecx - 0x13c]
xor dh, ah
and ebx, edi
movzx ecx, byte [ebp + ebx - 0x13c]
xor dh, byte [ebp + ecx - 0x13c]
mov byte [ebp + esi - 0x15d], dh
inc esi
cmp esi, 6
jne 0x431248
mov byte [ebp - 0x157], 0
xorpd xmm4, xmm4
movsd xmm5, qword [0x6120e8]
movsd xmm6, qword [0x6120f0]
movsd xmm7, qword [0x6120f8]
movsd xmm2, qword [0x612100]
xorpd xmm0, xmm0
movapd xmm1, xmm4
mulsd xmm1, qword [0x6120d0]
mulsd xmm1, xmm4
movapd xmm3, xmm4
mulsd xmm3, xmm4
subsd xmm1, xmm3
movapd xmm3, xmm4
mulsd xmm3, qword [0x6120d8]
mulsd xmm3, xmm4
addsd xmm3, qword [0x6120e0]
divsd xmm1, xmm3
addsd xmm1, xmm0
movapd xmm3, xmm4
mulsd xmm3, xmm5
addsd xmm3, xmm1
movapd xmm0, xmm6
cmpltsd xmm0, xmm1
andpd xmm3, xmm0
andnpd xmm0, xmm1
orpd xmm0, xmm3
addsd xmm4, xmm7
ucomisd xmm2, xmm4
ja 0x43135e
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x4313f7
sub word [esi], sp
outsd dx, dword [esi]
and byte ss:[ecx + eax*2 + 0x6c], cl
outsd dx, dword [esi]
cmp bh, byte ss:[esi + 0x79]
jp 0x43140f
insd dword es:[edi], dx
adc al, cl
adc bh, byte [edi - 0x3af442e8]
or eax, 0x19bd18c3
mov edi, 0xc70bc012
jmp 0x431ced
lea eax, [0x4313e0]
mov dword [ebp - 0x34], eax
movdqa xmm1, xmmword [0x612110]
xor eax, eax
movdqa xmm2, xmmword [0x612120]
and dword [ecx], esp
movdqu xmmword [ebp + eax - 0x13c], xmm1
add eax, 0x10
paddb xmm1, xmm2
cmp eax, 0x100
jne 0x431412
movsd xmm1, qword [0x612130]
movapd xmm2, xmm0
subsd xmm2, xmm1
cvttsd2si eax, xmm2
lea ecx, [0x4313cf]
mov dword [ebp - 0x30], ecx
xor eax, 0x80000000
cvttsd2si ecx, xmm0
ucomisd xmm0, xmm1
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], ecx
shr ecx, 0x10
mov dword [ebp - 0x2c], ecx
mov esi, 0xff
xor ecx, ecx
xor ebx, ebx
xor edx, edx
inc edx
cmp esi, 2
jb 0x431482
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, esi
jb 0x43147b
mov dword [ebp - 0x20], esi
mov esi, 0xc
cmp ecx, 3
ja case.default.0x43148f
jmp dword [ecx*4 + 0x61463c]
movzx eax, bl
add eax, ebp
add eax, 0xfffffec4
mov ebx, dword [ebp - 0x24]
jmp 0x4314c1
movzx eax, bl
add eax, ebp
add eax, 0xfffffec4
mov ebx, dword [ebp - 0x2c]
jmp 0x4314c1
movzx eax, bl
add eax, ebp
add eax, 0xfffffec4
mov ebx, dword [ebp - 0x28]
jmp 0x4314e6
movzx eax, bl
add eax, ebp
add eax, 0xfffffec4
mov ebx, dword [ebp - 0x24]
mov bl, bh
jmp 0x4314e6
movzx eax, bl
mov bl, byte [ebp + eax - 0x13c]
mov eax, dword [ebp - 0x30]
add eax, ecx
add eax, 0xfffffffc
add bl, byte [eax]
inc ecx
movzx eax, bl
add bl, 0x15
cmp ecx, 0x14
movzx ebx, bl
cmovbe ebx, eax
mov eax, 0
cmova ecx, eax
movzx edi, bl
mov eax, edx
and eax, edi
dec esi
je 0x431515
cmp eax, dword [ebp - 0x20]
ja 0x43148a
jmp 0x43151c
xor edx, edx
div dword [ebp - 0x20]
mov eax, edx
mov esi, dword [ebp - 0x20]
cmp esi, eax
je 0x43154d
mov dl, byte [ebp + esi - 0x13c]
xor dl, byte [ebp + eax - 0x13c]
mov byte [ebp + esi - 0x13c], dl
xor dl, byte [ebp + eax - 0x13c]
mov byte [ebp + eax - 0x13c], dl
xor byte [ebp + esi - 0x13c], dl
dec esi
jne 0x431470
movzx eax, byte [ebp - 0x13b]
mov dword [ebp - 0x30], eax
mov bh, byte [ebp - 0x137]
movzx ecx, byte [ebp + edi - 0x13c]
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x34]
mov cl, byte [edx]
mov esi, edx
mov dl, byte [ebp + eax - 0x13c]
add dl, byte [ebp - 0x139]
mov byte [ebp - 0x24], dl
mov ch, byte [esi + 1]
movzx esi, dl
mov bl, byte [ebp + esi - 0x13c]
movzx edi, byte [ebp - 0x135]
mov eax, dword [ebp - 0x28]
movzx edx, byte [ebp + eax - 0x13c]
mov byte [ebp + eax - 0x13c], bl
mov bl, byte [ebp + edi - 0x13c]
mov byte [ebp + esi - 0x13c], bl
mov eax, dword [ebp - 0x30]
mov bl, al
inc bl
movzx eax, bl
mov bl, byte [ebp + eax - 0x13c]
mov byte [ebp + edi - 0x13c], bl
mov byte [ebp + eax - 0x13c], dl
add ch, 0x47
shl cl, 4
add cl, 0x60
or cl, ch
movzx eax, byte [ebp + esi - 0x13c]
add eax, edx
mov esi, 0xff
and eax, esi
movzx esi, cl
mov dword [ebp - 0x2c], esi
xor cl, byte [ebp + eax - 0x13c]
add bh, byte [ebp + edx - 0x13c]
mov esi, edx
mov byte [ebp - 0x20], bh
movzx eax, byte [ebp + edi - 0x13c]
mov edx, dword [ebp - 0x28]
movzx edx, byte [ebp + edx - 0x13c]
add edx, eax
movzx eax, bh
movzx eax, byte [ebp + eax - 0x13c]
add eax, edx
mov edx, 0xff
and eax, edx
movzx eax, byte [ebp + eax - 0x13c]
xor cl, byte [ebp + eax - 0x13c]
mov dh, byte [ebp - 0x24]
mov eax, esi
add dh, al
mov byte [ebp - 0x24], dh
mov eax, dword [ebp - 0x34]
mov dl, byte [eax + 2]
mov ch, byte [eax + 3]
movzx edi, dh
mov dh, byte [ebp + edi - 0x13c]
mov eax, dword [ebp - 0x2c]
movzx ebx, byte [ebp + eax - 0x13c]
mov byte [ebp + eax - 0x13c], dh
movzx esi, cl
mov cl, byte [ebp + esi - 0x13c]
mov byte [ebp + edi - 0x13c], cl
mov eax, dword [ebp - 0x30]
mov cl, al
add cl, 2
movzx eax, cl
mov cl, byte [ebp + eax - 0x13c]
mov byte [ebp + esi - 0x13c], cl
mov byte [ebp + eax - 0x13c], bl
shl dl, 4
add dl, 0x60
add ch, 0x47
or ch, dl
movzx eax, byte [ebp + edi - 0x13c]
add eax, ebx
mov edi, 0xff
and eax, edi
movzx edx, ch
mov dword [ebp - 0x28], edx
xor ch, byte [ebp + eax - 0x13c]
movzx eax, byte [ebp + esi - 0x13c]
mov edx, dword [ebp - 0x2c]
movzx edx, byte [ebp + edx - 0x13c]
add edx, eax
mov al, byte [ebp - 0x20]
add al, byte [ebp + ebx - 0x13c]
mov byte [ebp - 0x20], al
movzx eax, al
movzx eax, byte [ebp + eax - 0x13c]
add eax, edx
and eax, edi
movzx eax, byte [ebp + eax - 0x13c]
xor ch, byte [ebp + eax - 0x13c]
movsx eax, ch
mov word [ebp - 0x156], ax
mov al, byte [ebp - 0x24]
add al, bl
mov byte [ebp - 0x24], al
mov edx, dword [ebp - 0x34]
mov bl, byte [edx + 4]
mov cl, byte [edx + 5]
movzx edi, al
mov bh, byte [ebp + edi - 0x13c]
mov eax, dword [ebp - 0x28]
movzx edx, byte [ebp + eax - 0x13c]
mov byte [ebp + eax - 0x13c], bh
movzx esi, ch
mov ch, byte [ebp + esi - 0x13c]
mov byte [ebp + edi - 0x13c], ch
mov eax, dword [ebp - 0x30]
mov ch, al
add ch, 3
movzx eax, ch
mov ch, byte [ebp + eax - 0x13c]
mov byte [ebp + esi - 0x13c], ch
mov byte [ebp + eax - 0x13c], dl
movzx eax, byte [ebp + esi - 0x13c]
mov esi, dword [ebp - 0x28]
movzx esi, byte [ebp + esi - 0x13c]
add esi, eax
mov al, byte [ebp - 0x20]
add al, byte [ebp + edx - 0x13c]
mov byte [ebp - 0x20], al
movzx eax, al
movzx eax, byte [ebp + eax - 0x13c]
add eax, esi
add cl, 0x47
shl bl, 4
add bl, 0x60
or bl, cl
movzx ecx, byte [ebp + edi - 0x13c]
add ecx, edx
mov edi, edx
mov esi, 0xff
and ecx, esi
mov dl, byte [ebp + ecx - 0x13c]
xor dl, bl
and eax, esi
movzx eax, byte [ebp + eax - 0x13c]
xor dl, byte [ebp + eax - 0x13c]
movsx eax, dl
mov word [ebp - 0x154], ax
mov dh, byte [ebp - 0x24]
mov eax, edi
add dh, al
mov byte [ebp - 0x24], dh
mov eax, dword [ebp - 0x34]
mov cl, byte [eax + 6]
mov ch, byte [eax + 7]
movzx eax, bl
mov dword [ebp - 0x2c], eax
movzx edi, dh
mov dh, byte [ebp + edi - 0x13c]
movzx esi, byte [ebp + eax - 0x13c]
mov dword [ebp - 0x28], esi
mov byte [ebp + eax - 0x13c], dh
movzx esi, dl
mov bl, byte [ebp + esi - 0x13c]
mov byte [ebp + edi - 0x13c], bl
mov eax, dword [ebp - 0x30]
mov ebx, eax
add bl, 4
movzx ebx, bl
mov al, byte [ebp + ebx - 0x13c]
mov byte [ebp + esi - 0x13c], al
mov edx, dword [ebp - 0x28]
mov byte [ebp + ebx - 0x13c], dl
add ch, 0x47
shl cl, 4
add cl, 0x60
or cl, ch
movzx eax, byte [ebp + edi - 0x13c]
add eax, edx
mov ebx, 0xff
and eax, ebx
movzx edi, cl
xor cl, byte [ebp + eax - 0x13c]
mov ch, byte [ebp - 0x20]
add ch, byte [ebp + edx - 0x13c]
mov byte [ebp - 0x20], ch
movzx eax, byte [ebp + esi - 0x13c]
mov edx, dword [ebp - 0x2c]
movzx edx, byte [ebp + edx - 0x13c]
add edx, eax
movzx eax, ch
movzx eax, byte [ebp + eax - 0x13c]
add eax, edx
and eax, ebx
movzx eax, byte [ebp + eax - 0x13c]
xor cl, byte [ebp + eax - 0x13c]
movsx eax, cl
mov word [ebp - 0x152], ax
mov al, byte [ebp - 0x24]
add al, byte [ebp - 0x28]
mov byte [ebp - 0x24], al
mov edx, dword [ebp - 0x34]
mov ch, byte [edx + 8]
mov dl, byte [edx + 9]
mov byte [ebp - 0x28], dl
movzx esi, al
mov al, byte [ebp + esi - 0x13c]
movzx edx, byte [ebp + edi - 0x13c]
mov byte [ebp + edi - 0x13c], al
movzx ebx, cl
mov cl, byte [ebp + ebx - 0x13c]
mov byte [ebp + esi - 0x13c], cl
mov eax, dword [ebp - 0x30]
mov cl, al
add cl, 5
movzx eax, cl
mov cl, byte [ebp + eax - 0x13c]
mov byte [ebp + ebx - 0x13c], cl
mov byte [ebp + eax - 0x13c], dl
movzx eax, byte [ebp + ebx - 0x13c]
movzx edi, byte [ebp + edi - 0x13c]
add edi, eax
mov al, byte [ebp - 0x20]
mov ebx, edx
add al, byte [ebp + edx - 0x13c]
mov byte [ebp - 0x20], al
movzx eax, al
movzx eax, byte [ebp + eax - 0x13c]
add eax, edi
mov cl, byte [ebp - 0x28]
add cl, 0x47
shl ch, 4
add ch, 0x60
or ch, cl
movzx edx, byte [ebp + esi - 0x13c]
add edx, ebx
mov edi, ebx
mov esi, 0xff
and edx, esi
mov dl, byte [ebp + edx - 0x13c]
xor dl, ch
and eax, esi
movzx eax, byte [ebp + eax - 0x13c]
xor dl, byte [ebp + eax - 0x13c]
movsx eax, dl
mov word [ebp - 0x150], ax
mov bl, byte [ebp - 0x24]
mov eax, edi
add bl, al
mov byte [ebp - 0x24], bl
mov eax, dword [ebp - 0x34]
mov cl, byte [eax + 0xa]
mov al, byte [eax + 0xb]
mov byte [ebp - 0x28], al
movzx esi, ch
movzx edi, bl
mov ch, byte [ebp + edi - 0x13c]
movzx eax, byte [ebp + esi - 0x13c]
mov dword [ebp - 0x2c], eax
mov byte [ebp + esi - 0x13c], ch
movzx ebx, dl
mov dl, byte [ebp + ebx - 0x13c]
mov byte [ebp + edi - 0x13c], dl
mov eax, dword [ebp - 0x30]
mov edx, eax
add dl, 6
movzx eax, dl
mov dl, byte [ebp + eax - 0x13c]
mov byte [ebp + ebx - 0x13c], dl
mov edx, dword [ebp - 0x2c]
mov byte [ebp + eax - 0x13c], dl
movzx eax, byte [ebp + ebx - 0x13c]
movzx esi, byte [ebp + esi - 0x13c]
add esi, eax
mov al, byte [ebp - 0x20]
add al, byte [ebp + edx - 0x13c]
mov ebx, edx
mov byte [ebp - 0x20], al
movzx eax, al
movzx eax, byte [ebp + eax - 0x13c]
add eax, esi
mov dl, byte [ebp - 0x28]
add dl, 0x47
shl cl, 4
add cl, 0x60
or cl, dl
movzx edx, byte [ebp + edi - 0x13c]
add edx, ebx
mov edi, ebx
mov esi, 0xff
and edx, esi
mov dl, byte [ebp + edx - 0x13c]
xor dl, cl
and eax, esi
movzx eax, byte [ebp + eax - 0x13c]
xor dl, byte [ebp + eax - 0x13c]
movsx eax, dl
mov word [ebp - 0x14e], ax
mov bh, byte [ebp - 0x24]
mov eax, edi
add bh, al
mov eax, dword [ebp - 0x34]
mov ch, byte [eax + 0xc]
mov bl, byte [eax + 0xd]
movzx eax, cl
mov dword [ebp - 0x24], eax
movzx edi, bh
mov cl, byte [ebp + edi - 0x13c]
movzx esi, byte [ebp + eax - 0x13c]
mov dword [ebp - 0x2c], esi
mov byte [ebp + eax - 0x13c], cl
movzx esi, dl
mov cl, byte [ebp + esi - 0x13c]
mov byte [ebp + edi - 0x13c], cl
mov eax, dword [ebp - 0x30]
mov cl, al
add cl, 7
movzx eax, cl
mov cl, byte [ebp + eax - 0x13c]
mov byte [ebp + esi - 0x13c], cl
mov edx, dword [ebp - 0x2c]
mov byte [ebp + eax - 0x13c], dl
shl ch, 4
add ch, 0x60
add bl, 0x47
or bl, ch
movzx eax, byte [ebp + edi - 0x13c]
add eax, edx
mov ecx, 0xff
and eax, ecx
movzx ecx, bl
mov dword [ebp - 0x28], ecx
xor bl, byte [ebp + eax - 0x13c]
movzx eax, byte [ebp + esi - 0x13c]
mov ecx, dword [ebp - 0x24]
movzx ecx, byte [ebp + ecx - 0x13c]
add ecx, eax
mov al, byte [ebp - 0x20]
add al, byte [ebp + edx - 0x13c]
mov byte [ebp - 0x20], al
movzx eax, al
movzx eax, byte [ebp + eax - 0x13c]
add eax, ecx
mov ecx, 0xff
and eax, ecx
movzx eax, byte [ebp + eax - 0x13c]
xor bl, byte [ebp + eax - 0x13c]
movsx eax, bl
mov word [ebp - 0x14c], ax
mov cl, bh
add cl, dl
mov byte [ebp - 0x24], cl
mov esi, dword [ebp - 0x34]
mov al, byte [esi + 0xe]
mov dl, byte [esi + 0xf]
mov byte [ebp - 0x2c], dl
movzx esi, cl
mov ah, byte [ebp + esi - 0x13c]
mov ecx, dword [ebp - 0x28]
movzx edx, byte [ebp + ecx - 0x13c]
mov byte [ebp + ecx - 0x13c], ah
mov edi, ecx
movzx ebx, bl
mov ah, byte [ebp + ebx - 0x13c]
mov byte [ebp + esi - 0x13c], ah
mov ecx, dword [ebp - 0x30]
mov ah, cl
add ah, 8
movzx ecx, ah
mov ah, byte [ebp + ecx - 0x13c]
mov byte [ebp + ebx - 0x13c], ah
mov byte [ebp + ecx - 0x13c], dl
movzx ecx, byte [ebp + ebx - 0x13c]
movzx edi, byte [ebp + edi - 0x13c]
add edi, ecx
mov cl, byte [ebp - 0x20]
mov ebx, edx
add cl, byte [ebp + edx - 0x13c]
mov byte [ebp - 0x20], cl
movzx ecx, cl
movzx ecx, byte [ebp + ecx - 0x13c]
add ecx, edi
mov dl, byte [ebp - 0x2c]
add dl, 0x47
shl al, 4
add al, 0x60
or al, dl
movzx edx, byte [ebp + esi - 0x13c]
add edx, ebx
mov esi, 0xff
and edx, esi
mov dl, byte [ebp + edx - 0x13c]
xor dl, al
and ecx, esi
movzx ecx, byte [ebp + ecx - 0x13c]
xor dl, byte [ebp + ecx - 0x13c]
movsx ecx, dl
mov word [ebp - 0x14a], cx
mov cl, byte [ebp - 0x24]
add cl, bl
mov esi, dword [ebp - 0x34]
mov dh, byte [esi + 0x10]
mov bl, byte [esi + 0x11]
movzx eax, al
mov dword [ebp - 0x24], eax
movzx esi, cl
mov bh, byte [ebp + esi - 0x13c]
movzx ecx, byte [ebp + eax - 0x13c]
mov byte [ebp + eax - 0x13c], bh
movzx edi, dl
mov dl, byte [ebp + edi - 0x13c]
mov byte [ebp + esi - 0x13c], dl
mov eax, dword [ebp - 0x30]
add al, 9
movzx eax, al
mov dl, byte [ebp + eax - 0x13c]
mov byte [ebp + edi - 0x13c], dl
mov byte [ebp + eax - 0x13c], cl
movzx eax, byte [ebp + esi - 0x13c]
add eax, ecx
mov dl, byte [ebp - 0x20]
add dl, byte [ebp + ecx - 0x13c]
shl dh, 4
add dh, 0x60
add bl, 0x47
or bl, dh
mov esi, 0xff
and eax, esi
xor bl, byte [ebp + eax - 0x13c]
movzx eax, dl
movzx ecx, byte [ebp + edi - 0x13c]
mov edx, dword [ebp - 0x24]
movzx edx, byte [ebp + edx - 0x13c]
add edx, ecx
movzx eax, byte [ebp + eax - 0x13c]
add eax, edx
and eax, esi
movzx eax, byte [ebp + eax - 0x13c]
xor bl, byte [ebp + eax - 0x13c]
movsx eax, bl
mov word [ebp - 0x148], ax
mov word [ebp - 0x146], 0
mov dword [ebp - 0x10], 0xffffffff
mov esi, 4
push esi
call fcn.005db3dd
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x10], esi
lea eax, [ebp - 0x156]
lea ecx, [ebp - 0x13c]
push eax
call fcn.00406642
mov ecx, dword [ebp - 0x20]
mov dword [ecx], 0
mov dword [ebp - 0x10], 5
push 2
lea eax, [ebp - 0x13c]
push eax
call fcn.0044527c
push dword [ebp - 0x124]
call fcn.005fd8d5
add esp, 4
mov ecx, dword [ebp - 0x128]
cmp ecx, 8
mov esi, dword [ebp - 0x20]
lea edi, [ebp - 0x13c]
jb 0x431d92
mov eax, dword [ebp - 0x13c]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x431d88
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x431e32
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.005db412
add esp, 8
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x163]
mov ecx, edi
push eax
call fcn.00401278
mov dword [ebp - 0x10], 6
mov ecx, esi
push 0
push edi
call fcn.004454fe
mov esi, eax
push dword [ebp - 0x124]
call fcn.005fd8d5
add esp, 4
mov ecx, dword [ebp - 0x128]
cmp ecx, 8
jb 0x431e07
mov eax, dword [ebp - 0x13c]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x431dfd
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x431e32
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.005db412
add esp, 8
mov dword [ebp - 0x10], 0xffffffff
call esi
xor ebx, ebx
cmp eax, 0x514
setne bl
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, ebx
add esp, 0x1b8
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
call fcn.005f5844
nop
push ebp
sub esp, 0x18
add ebp, 0xc
push dword [ebp - 0x124]
call fcn.005fd8d5
add esp, 4
mov ecx, dword [ebp - 0x128]
cmp ecx, 8
jb 0x431e8c
mov eax, dword [ebp - 0x13c]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x431e82
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x431e91
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.005db412
add esp, 8
add esp, 0x18
pop ebp
ret
call fcn.005f5844
push ebp
sub esp, 0x18
add ebp, 0xc
push dword [ebp - 0x124]
call fcn.005fd8d5
add esp, 4
mov ecx, dword [ebp - 0x128]
cmp ecx, 8
jb 0x431eea
mov eax, dword [ebp - 0x13c]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x431ee0
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x431eef
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.005db412
add esp, 8
add esp, 0x18
pop ebp
ret
call fcn.005f5844
push ebp
sub esp, 0x18
add ebp, 0xc
push dword [ebp - 0x124]
call fcn.005fd8d5
add esp, 4
mov ecx, dword [ebp - 0x128]
cmp ecx, 8
jb 0x431f48
mov eax, dword [ebp - 0x13c]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x431f3e
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x431f4d
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.005db412
add esp, 8
add esp, 0x18
pop ebp
ret
call fcn.005f5844
push ebp
sub esp, 0x18
add ebp, 0xc
push dword [ebp - 0x20]
call fcn.005db40d
add esp, 0x1c
pop ebp
ret