Function at 0x422070
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xd0
mov dword [esp + 0x40], 0x69c16bc9
mov dword [esp + 0x44], 0x6dba6ff7
mov dword [esp + 0x48], 0x51f653be
mov dword [esp + 0x4c], 0x555657f6
mov byte [esp + 0x50], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x40]
mov edx, eax
and edx, 0x17
mov esi, eax
xor esi, 0xbebcb217
lea edx, [esi + edx*2]
mov edi, ecx
xor edi, edx
lea esi, [edi + edi]
not esi
add esi, edi
and esi, edx
mov edi, esi
and edi, 0x7d
mov ebx, esi
or ebx, 0xfd
inc ebx
imul ebx, edi
mov edi, esi
and edi, 2
or esi, 2
imul esi, edi
sub ebx, esi
add ebx, edx
add bl, cl
add bl, 0x8d
mov byte [esp + eax + 0x40], bl
mov ecx, 4
sub ecx, eax
add eax, 0x1b
and ecx, 0x1a
and eax, 0x25
sub eax, ecx
cmp eax, 0x11
jb 0x4220b0
lea eax, [esp + 0x40]
push eax
mov edi, dword [ebp + 0xc]
push edi
push dword [ebp + 8]
call fcn.00419320
add esp, 0xc
mov ebx, eax
mov dword [esp + 0x40], 0x3f9b399f
mov dword [esp + 0x44], 0x23b63daa
mov dword [esp + 0x48], 0x27f421f9
mov dword [esp + 0x4c], 0x2b8c2580
mov dword [esp + 0x50], 0x2928
mov byte [esp + 0x54], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x4a
xor cl, byte [esp + eax + 0x40]
add cl, 0x8e
mov byte [esp + eax + 0x40], cl
inc eax
cmp eax, 0x15
jne 0x422160
lea eax, [esp + 0x40]
push eax
push edi
push dword [ebp + 8]
call fcn.00419320
add esp, 0xc
mov bh, al
mov dword [esp + 0x40], 0x2197279a
mov dword [esp + 0x44], 0x3d952392
mov dword [esp + 0x48], 0x39853f84
mov dword [esp + 0x4c], 0x35b63bb5
mov dword [esp + 0x50], 0x31843785
mov dword [esp + 0x54], 0xd4433bb
mov dword [esp + 0x58], 0x9bd0f81
mov dword [esp + 0x5c], 0x5b10bbc
mov dword [esp + 0x60], 0x1b90788
mov word [esp + 0x64], 0x300
mov dword [esp + 0x66], 0
mov word [esp + 0x6a], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
mov esi, eax
and esi, 0x12
mov edx, ecx
xor edx, 9
add edx, esi
xor dl, byte [esp + ecx + 0x40]
add dl, 0xd3
mov byte [esp + ecx + 0x40], dl
inc ecx
add eax, 2
cmp ecx, 0x2c
jne 0x4221f0
lea eax, [esp + 0x40]
push eax
push edi
push dword [ebp + 8]
call fcn.00419320
add esp, 0xc
mov byte [esp + 7], al
mov dword [esp + 0x40], 0x36d0163
mov dword [esp + 0x44], 0x76d056b
mov dword [esp + 0x48], 0xb6f0961
mov dword [esp + 0x4c], 0xf200d7f
mov dword [esp + 0x50], 0x13631163
mov dword [esp + 0x54], 0x177f1578
mov dword [esp + 0x58], 0x1b7f196c
mov word [esp + 0x5c], 0x1d1c
mov dword [esp + 0x5e], 0
mov byte [esp + 0x62], 0
or bl, bh
mov byte [esp + 8], bl
xor ecx, ecx
mov eax, 0xdffadb7f
nop
nop
movzx esi, byte [esp + ecx + 0x40]
mov ebx, eax
or ebx, esi
mov edi, ecx
xor edi, 0x7f
and edi, esi
not ebx
or ebx, edi
lea edi, [ebx + 0x5fe6497f]
mov esi, edi
mov edx, 0xa019b680
sub edx, ebx
mov ebx, edx
and edx, 0xcabd517d
and edi, 0x3542ae82
or edi, edx
not ebx
and ebx, 1
or ebx, edi
and esi, 1
or ebx, esi
xor ebx, 0x7c
add ebx, esi
mov byte [esp + ecx + 0x40], bl
inc ecx
dec eax
cmp ecx, 0x23
jne 0x422280
movzx ebx, byte [esp + 8]
or bl, byte [esp + 7]
lea eax, [esp + 0x40]
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00419320
add esp, 0xc
movzx edi, al
movzx eax, bl
mov ebx, edi
not ebx
xor edi, eax
add edi, eax
mov dword [esp + 0x40], 0x93e591e4
mov dword [esp + 0x44], 0xafd7add3
mov dword [esp + 0x48], 0xabd9a9de
mov dword [esp + 0x4c], 0xa7dca592
mov dword [esp + 0x50], 0xa3d5a1d3
mov dword [esp + 0x54], 0xbfbebdca
mov word [esp + 0x58], 0
and ebx, eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x40]
mov edx, 0xe3
sub edx, eax
or edx, ecx
lea esi, [eax + 0x1c]
not ecx
or ecx, esi
and ecx, edx
mov dl, 0x73
sub dl, cl
mov byte [esp + eax + 0x40], dl
add eax, 0x685f6bef
mov ecx, eax
and ecx, 0x412
or eax, 0x97a09412
add eax, ecx
cmp eax, 0x1a
jb 0x422340
lea eax, [esp + 0x40]
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00419320
add esp, 0xc
mov byte [esp + 7], al
mov dword [esp + 0x40], 0x4fd249d8
mov dword [esp + 0x44], 0x43a54dad
mov dword [esp + 0x48], 0x47d141a5
mov dword [esp + 0x4c], 0x7bed4596
mov dword [esp + 0x50], 0x7fe279e9
mov dword [esp + 0x54], 0x73e67de5
mov dword [esp + 0x58], 0x77767195
mov word [esp + 0x5c], 0
mov byte [esp + 0x5e], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x40]
mov esi, 0x6d
sub esi, eax
lea ecx, [eax + 0x1f4b5692]
or ecx, edx
not edx
or edx, esi
and ecx, edx
lea edx, [ecx + 0x63874f25]
not ecx
add ecx, ecx
and ecx, 2
mov esi, ecx
and esi, edx
or ecx, edx
xor ecx, 1
add ecx, esi
mov byte [esp + eax + 0x40], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x1f
jb case.default.0x422450
cmp edi, ebx
setne bl
lea eax, [esp + 0x40]
push eax
mov esi, dword [ebp + 0xc]
push esi
push dword [ebp + 8]
call fcn.00419320
add esp, 0xc
mov bh, byte [esp + 7]
or bh, al
or bh, bl
xor eax, eax
cmp dword [ebp + 0x10], 0
sete al
jmp dword [eax*4 + 0x448fc8]
lea ecx, [esp + 0x40]
push 1
call fcn.004091a0
mov esi, dword [esi + 4]
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax], 0
lea eax, [eax + 2]
jne 0x422470
lea ecx, [esi + eax]
add ecx, 0xfffffffe
add eax, esi
mov edx, 1
sub edx, eax
and edx, esi
mov eax, esi
not eax
and eax, ecx
sub eax, edx
cmp eax, 0xffffffeb
jge 0x4224a4
mov eax, 0xffffffff
jmp 0x4224a7
jmp 0x4225bd
add eax, 0x14
push eax
call fcn.00408640
add esp, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x14], 0x21962780
mov dword [esp + 0x18], 0x3d9d2392
mov dword [esp + 0x1c], 0x39b33f82
mov dword [esp + 0x20], 0x35803b4e
mov dword [esp + 0x24], 0x313637b9
mov dword [esp + 0x28], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
xor edi, 0x77
mov edx, eax
and edx, 0x10
sub edx, edi
xor dl, byte [esp + ecx + 0x14]
add dl, 0x53
mov byte [esp + ecx + 0x14], dl
inc ecx
add eax, 2
cmp ecx, 0x18
jne 0x4224f0
movzx ecx, word [esi]
mov edi, dword [esp + 0x38]
mov eax, edi
test cx, cx
je 0x422541
add esi, 2
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x422530
mov word [eax], 0
movzx ecx, word [esp + 0x14]
test cx, cx
je 0x422571
lea edx, [esp + 0x16]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x422560
mov word [eax], 0
lea eax, [esp + 0x10]
push 0x60
push 3
push 0x120089
push eax
push edi
call fcn.004429e0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x448fd0]
jmp dword [0x449010]
push edi
call fcn.00408650
add esp, 4
lea esi, [esp + 0x40]
mov ecx, esi
call fcn.00409cb0
and bh, 1
mov ecx, esi
call fcn.00409280
mov al, bh
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov byte [esp + 7], bh
lea eax, [esp + 0x3c]
push 0
push eax
push dword [esp + 0x18]
call fcn.00442cf0
add esp, 0xc
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x448fd8]
mov esi, dword [esp + 0x3c]
mov eax, esi
and eax, 1
mov ecx, esi
xor ecx, 1
lea eax, [ecx + eax*2]
push eax
call fcn.00408640
add esp, 4
push 0
push esi
mov dword [esp + 0x3c], eax
push eax
push dword [esp + 0x1c]
call fcn.00442da0
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x448fe0]
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x34]
mov byte [esi + eax], 0
mov dword [esp + 0x14], 0x8696a985
mov dword [esp + 0x18], 0x989f969a
mov dword [esp + 0x1c], 0x8cc48a86
mov dword [esp + 0x20], 0xb79b9f99
mov dword [esp + 0x24], 0x808c9484
mov dword [esp + 0x28], 0x84888a8d
mov dword [esp + 0x2c], 0xb2bfbcf6
mov dword [esp + 0x30], 0xebea8
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xc8
xor cl, byte [esp + eax + 0x14]
add cl, 0x18
mov byte [esp + eax + 0x14], cl
inc eax
cmp eax, 0x20
jne 0x422680
movzx ebx, byte [esp + 0x14]
mov dword [esp + 8], esi
test bl, bl
je 0x4226ec
lea eax, [esp + 0x14]
mov ecx, eax
mov edx, esi
mov dword [esp + 8], esi
jmp 0x4226c7
movzx ebx, byte [ecx]
test bl, bl
je 0x4226ec
mov bh, byte [edx]
test bh, bh
je 0x4226e4
inc edx
inc ecx
mov esi, dword [esp + 8]
inc esi
cmp bh, bl
je 0x4226de
mov dword [esp + 8], esi
mov edx, esi
je 0x4226c0
mov ecx, eax
jmp 0x4226c0
mov dword [esp + 8], 0
xor eax, eax
cmp dword [esp + 8], 0
setne al
jmp dword [eax*4 + 0x448fe8]
jmp dword [0x449008]
push dword [esp + 0x34]
call fcn.00408650
add esp, 4
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], 0xe0e7e6e5
mov byte [esp + 0x18], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + edx + 0x14]
mov eax, edx
and eax, 1
mov dword [esp + 8], eax
mov esi, edx
and esi, 6
mov ecx, edx
xor ecx, 0x101651d9
add ecx, edx
sub ecx, esi
add ecx, eax
mov esi, ecx
and esi, ebx
mov eax, esi
or eax, 0xfffffffd
inc eax
mov edi, esi
and edi, 0xfffffffd
imul edi, eax
mov eax, esi
and eax, 2
or esi, 2
imul esi, eax
sub edi, esi
add ecx, ebx
add edi, ecx
mov esi, edi
and esi, 0xaf9066c0
mov eax, edi
and eax, 2
mov ebx, eax
xor ebx, 2
imul ebx, esi
or esi, 2
imul esi, eax
xor edi, 0xc2
add edi, ebx
add edi, esi
and ecx, 1
lea ebx, [ecx + ecx]
sub ebx, ecx
or edi, 1
add ebx, edi
mov byte [esp + edx + 0x14], bl
xor edx, 1
mov eax, dword [esp + 8]
lea edx, [edx + eax*2]
cmp edx, 5
jb 0x422730
mov ecx, dword [0x44f2b4]
test ecx, ecx
mov bh, byte [esp + 7]
mov edi, dword [esp + 0x38]
je 0x4227f8
mov edx, dword [esp + 0x14]
xor eax, eax
mov esi, dword [0x44f2b8]
nop
nop
nop
nop
nop
cmp dword [esi + eax*8], 0x1b6183f2
je 0x4227f0
inc eax
cmp ecx, eax
jne 0x4227e0
jmp 0x4227f8
mov eax, dword [esi + eax*8 + 4]
cmp eax, edx
jne 0x4227fe
jmp dword [0x449010]
push dword [esp + 0xc]
push 4
push eax
push dword [0x44f2bc]
call fcn.00440360
add esp, 0x10
jmp dword [0x449010]
xor edi, edi
xor eax, eax
cmp edi, dword [ebp + 0x14]
setb al
jmp dword [eax*4 + 0x448ff0]
inc edi
xor eax, eax
cmp edi, dword [ebp + 0x14]
setb al
jmp dword [eax*4 + 0x448ff0]
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + edi*8 + 4]
movzx ebx, byte [eax]
mov ecx, dword [esp + 8]
test bl, bl
je 0x422882
mov edx, eax
mov ecx, dword [esp + 8]
mov esi, ecx
jmp 0x42286c
inc ecx
mov esi, ecx
mov edx, eax
movzx ebx, byte [edx]
test bl, bl
je 0x422882
mov bh, byte [esi]
test bh, bh
je 0x422880
cmp bh, bl
jne 0x422860
inc esi
inc edx
jmp 0x422865
xor ecx, ecx
xor edx, edx
test ecx, ecx
sete dl
jmp dword [edx*4 + 0x448ff8]
mov edx, dword [ebp + 0x10]
lea edx, [edx + edi*8]
mov dword [esp + 0xc], edx
mov esi, eax
nop
nop
nop
nop
mov edx, esi
inc esi
cmp byte [edx], 0
jne 0x4228a0
sub edx, eax
lea esi, [ecx + edx]
add esi, 5
movzx ecx, byte [ecx + edx + 5]
xor eax, eax
test cl, cl
je 0x4228d2
mov edx, esi
nop
nop
nop
cmp cl, 0x5c
je 0x4228d0
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x4228c0
jmp 0x4228d2
mov eax, edx
mov dword [esp + 0xc8], esi
sub eax, esi
mov esi, eax
inc esi
jns 0x4228f0
mov eax, 0xffffffff
jmp 0x4228f7
lea eax, [eax*2 + 2]
push eax
call fcn.00408640
add esp, 4
mov ebx, eax
push 0
push dword [esp + 0xcc]
push esi
push eax
call fcn.0040ad10
add esp, 0x10
push dword [esp + 0xc]
push dword [ebp + 0xc]
push ebx
lea eax, [esp + 0x4c]
push eax
call fcn.00422960
add esp, 0x10
movzx ecx, byte [esp + 7]
and cl, 1
or cl, al
mov byte [esp + 7], cl
jmp dword [0x449000]
push ebx
call fcn.00408650
add esp, 4
inc edi
xor eax, eax
cmp edi, dword [ebp + 0x14]
setb al
jmp dword [eax*4 + 0x448ff0]
push esi
mov ebx, eax
call fcn.00408650
mov eax, ebx
add esp, 4
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push eax
sub esp, 0x3c
mov dword [ebp - 0x10], esp
sub esp, 0x48
mov esi, esp
sub esp, 0x18
mov edi, esp
sub esp, 8
mov edx, esp
mov eax, dword [ebx + 4]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
cmp word [eax + ecx], 0
lea ecx, [ecx + 2]
jne 0x4229b0
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x1c], edx
lea edx, [eax + ecx]
add edx, 0xfffffffe
add ecx, eax
mov edi, 1
sub edi, ecx
and edi, eax
not eax
and eax, edx
sub eax, edi
sar eax, 1
xor edx, edx
mov ebx, dword [ebp + 0xc]
nop
nop
cmp word [ebx + edx], 0
lea edx, [edx + 2]
jne 0x4229e0
lea ecx, [ebx + edx]
add ecx, 0xfffffffe
add edx, ebx
mov edi, 1
sub edi, edx
and edi, ebx
and ecx, dword [ebp - 0x20]
sub ecx, edi
sar ecx, 1
add eax, ecx
add eax, 0x21
mov ecx, eax
and ecx, 0x1e
xor eax, 0x1e
lea ecx, [eax + ecx*2]
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x422a1e
mov eax, 0xffffffff
push eax
call fcn.00408640
add esp, 4
mov dword [ebp - 0x18], eax
mov edi, dword [ebp - 0x10]
mov dword [edi], 0x334f3156
mov dword [edi + 4], 0x3f533d4f
mov dword [edi + 8], 0x3b79394a
mov dword [edi + 0xc], 0x47304533
mov dword [edi + 0x10], 0x432f413c
mov dword [edi + 0x14], 0x4f324d34
mov dword [edi + 0x18], 0x4b264901
mov dword [edi + 0x1c], 0x576a5511
mov dword [edi + 0x20], 0x536b5162
mov dword [edi + 0x24], 0x5f675d60
mov dword [edi + 0x28], 0x5b655966
mov dword [edi + 0x2c], 0x675f6556
mov dword [edi + 0x30], 0x6306615d
mov dword [edi + 0x34], 0x6f026d05
mov dword [edi + 0x38], 0x6b6a690a
mov word [edi + 0x3c], 0
mov byte [edi + 0x3e], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
or dl, 0x4b
mov dh, cl
and dh, 0x34
sub dl, dh
add dl, al
xor dl, byte [edi + ecx]
mov dh, 0x7b
sub dh, dl
mov byte [edi + ecx], dh
inc ecx
dec al
cmp ecx, 0x3f
jne 0x422ab0
mov dword [esi], 0x833181dc
mov dword [esi + 4], 0x87298530
mov dword [esi + 8], 0x8b2b893a
mov dword [esi + 0xc], 0x8f2b8d2b
mov dword [esi + 0x10], 0x933691cc
mov dword [esi + 0x14], 0x97309531
mov dword [esi + 0x18], 0x9b2f9939
mov dword [esi + 0x1c], 0x9f2a9d30
mov dword [esi + 0x20], 0xe34fe1bc
mov dword [esi + 0x24], 0xe75ce54b
mov dword [esi + 0x28], 0xeb4fe985
mov dword [esi + 0x2c], 0xef5aed54
mov dword [esi + 0x30], 0xf35cf155
mov dword [esi + 0x34], 0xf75ff547
mov dword [esi + 0x38], 0xfb54f957
mov dword [esi + 0x3c], 0xff95fd97
mov dword [esi + 0x40], 0xc3c2c1ab
mov byte [esi + 0x44], 0
xor ebx, ebx
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esi + ebx]
mov edi, eax
or edi, 0x61ef0420
mov ecx, ebx
or ecx, 0x61ef0420
add ecx, edi
lea edi, [ebx + ecx]
inc edi
xor edi, edx
mov ecx, edi
and ecx, 0xa0
mov edx, edi
xor edx, 0x5f
add edx, edi
sub edx, ecx
and edi, 0x5f
add edx, edi
inc dl
mov byte [esi + ebx], dl
inc ebx
dec eax
cmp ebx, 0x45
jne 0x422b60
mov ebx, dword [ebp + 0x10]
mov ecx, dword [ebx + 4]
movzx edx, word [ecx]
mov edi, dword [ebp - 0x18]
mov eax, edi
test dx, dx
je 0x422bd1
add ecx, 2
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x422bc0
mov word [eax], 0
movzx ecx, word [esi]
test cx, cx
je 0x422c03
add esi, 2
mov edi, dword [ebp - 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x422bf0
jmp 0x422c06
mov edi, dword [ebp - 0x10]
mov word [eax], 0
mov edx, dword [ebp + 0xc]
movzx ecx, word [edx]
test cx, cx
je 0x422c31
add edx, 2
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x422c20
mov word [eax], 0
movzx ecx, word [edi]
test cx, cx
je 0x422c61
add edi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x422c50
mov word [eax], 0
mov eax, dword [ebp + 0x14]
mov esi, dword [eax]
xor eax, eax
nop
nop
nop
cmp word [esi + eax], 0
lea eax, [eax + 2]
jne 0x422c70
lea ecx, [esi + eax]
add ecx, 0xfffffffe
add eax, esi
mov edx, 1
sub edx, eax
and edx, esi
mov edi, esi
not edi
and edi, ecx
sub edi, edx
mov ecx, dword [ebx]
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ecx + edx], 0
lea edx, [edx + 2]
jne 0x422ca0
lea eax, [ecx + edx]
add eax, 0xfffffffe
add edx, ecx
mov ebx, 1
sub ebx, edx
and ebx, ecx
not ecx
and ecx, eax
sub ecx, ebx
mov eax, dword [ebp + 0x10]
mov edx, dword [eax + 8]
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
cmp word [edx + ebx], 0
lea ebx, [ebx + 2]
jne 0x422cd0
lea eax, [edx + ebx]
add eax, 0xfffffffe
mov dword [ebp - 0x10], eax
add ebx, edx
mov eax, 1
sub eax, ebx
and eax, edx
not edx
and edx, dword [ebp - 0x10]
sub edx, eax
sar edi, 1
sar ecx, 1
sar edx, 1
add ecx, edi
lea eax, [ecx + edx]
add ecx, edx
add ecx, 0xb
lea eax, [eax*2 + 0x16]
test ecx, ecx
jns 0x422d15
mov eax, 0xffffffff
push eax
call fcn.00408640
add esp, 4
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x14]
mov dword [edx], 0xff1ff903
mov dword [edx + 4], 0xe30efd10
mov dword [edx + 8], 0xe772e105
mov dword [edx + 0xc], 0xeb39e573
mov dword [edx + 0x10], 0xe9e8
mov byte [edx + 0x14], 0
mov eax, 0x662a6faa
mov ebx, dword [ebp + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [edx + eax - 0x662a6faa]
xor edx, eax
mov edi, edx
mov ecx, edx
xor ecx, 0x12bd1ad
add ecx, edx
and edx, 0x2a41ad
and edi, 0x66002e52
sub ecx, edi
mov edi, ecx
and edi, edx
xor ecx, edx
lea ecx, [ecx + edi*2]
mov edx, dword [ebp - 0x14]
inc cl
mov byte [edx + eax - 0x662a6faa], cl
inc eax
cmp eax, 0x662a6fbf
jne 0x422d60
movzx ecx, word [edx]
mov edi, dword [ebp - 0x10]
mov eax, edi
test cx, cx
je 0x422dd1
add edx, 2
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x422dc0
mov word [eax], 0
movzx ecx, word [esi]
test cx, cx
mov edi, dword [ebp - 0x1c]
je 0x422e01
add esi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x422df0
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [ebx]
movzx edx, word [ecx]
test dx, dx
je 0x422e31
add ecx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x422e20
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [ebx + 8]
movzx edx, word [ecx]
test dx, dx
je 0x422e61
add ecx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x422e50
mov word [eax], 0
mov dword [edi], 0x4342412a
mov byte [edi + 4], 0
mov eax, 0x30e4b7f0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [edi + eax - 0x30e4b7f0]
xor ecx, eax
lea edx, [ecx + ecx]
and edx, 0x100409e
xor ecx, 0xb88684f
mov esi, edx
and esi, ecx
xor ecx, edx
lea ecx, [ecx + esi*2]
inc cl
mov byte [edi + eax - 0x30e4b7f0], cl
inc eax
cmp eax, 0x30e4b7f5
jne 0x422e80
push 0
push 1
push 0
push edi
mov esi, dword [ebp - 0x18]
push esi
mov edi, dword [ebp - 0x10]
push edi
push dword [ebp + 8]
call fcn.00423660
add esp, 0x1c
jmp dword [0x449024]
push eax
sub esp, 0x3c
mov dword [ebp - 0x1c], esp
sub esp, 0x48
mov edi, esp
sub esp, 0x18
mov dword [ebp - 0x10], esp
sub esp, 8
mov dword [ebp - 0x14], esp
mov eax, dword [ebx + 4]
xor ecx, ecx
mov ebx, dword [ebp + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + ecx], 0
lea ecx, [ecx + 2]
jne 0x422f00
lea edx, [eax + ecx]
add edx, 0xfffffffe
add ecx, eax
mov esi, 1
sub esi, ecx
and esi, eax
not eax
and eax, edx
sub eax, esi
sar eax, 1
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + ecx], 0
lea ecx, [ecx + 2]
jne 0x422f30
mov edx, 0x3e0f83e1
mul edx
shr edx, 3
lea eax, [ebx + ecx]
add eax, 0xfffffffe
add ecx, ebx
mov esi, 1
sub esi, ecx
and esi, ebx
and eax, dword [ebp - 0x20]
sub eax, esi
sar eax, 1
mov esi, eax
not esi
and esi, edx
mov ecx, edx
not ecx
and ecx, eax
imul ecx, esi
mov esi, eax
and esi, edx
or eax, edx
imul eax, esi
add eax, ecx
shr eax, 0x1d
and eax, 0xfffffffe
push eax
call fcn.00408640
add esp, 4
mov dword [ebp - 0x18], eax
mov esi, dword [ebp - 0x1c]
mov dword [esi], 0x334f3156
mov dword [esi + 4], 0x3f533d4f
mov dword [esi + 8], 0x3b79394a
mov dword [esi + 0xc], 0x47304533
mov dword [esi + 0x10], 0x432f413c
mov dword [esi + 0x14], 0x4f324d34
mov dword [esi + 0x18], 0x4b264901
mov dword [esi + 0x1c], 0x576a5511
mov dword [esi + 0x20], 0x536b5162
mov dword [esi + 0x24], 0x5f675d60
mov dword [esi + 0x28], 0x5b655966
mov dword [esi + 0x2c], 0x675f6556
mov dword [esi + 0x30], 0x6306615d
mov dword [esi + 0x34], 0x6f026d05
mov dword [esi + 0x38], 0x6b6a690a
mov word [esi + 0x3c], 0
mov byte [esi + 0x3e], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
or dl, 0x4b
mov dh, cl
and dh, 0x34
sub dl, dh
add dl, al
xor dl, byte [esi + ecx]
mov dh, 0x7b
sub dh, dl
mov byte [esi + ecx], dh
inc ecx
dec al
cmp ecx, 0x3f
jne 0x423010
mov dword [edi], 0x833181dc
mov dword [edi + 4], 0x87298530
mov dword [edi + 8], 0x8b2b893a
mov dword [edi + 0xc], 0x8f2b8d2b
mov dword [edi + 0x10], 0x933691cc
mov dword [edi + 0x14], 0x97309531
mov dword [edi + 0x18], 0x9b2f9939
mov dword [edi + 0x1c], 0x9f2a9d30
mov dword [edi + 0x20], 0xe34fe1bc
mov dword [edi + 0x24], 0xe75ce54b
mov dword [edi + 0x28], 0xeb4fe985
mov dword [edi + 0x2c], 0xef5aed54
mov dword [edi + 0x30], 0xf35cf155
mov dword [edi + 0x34], 0xf75ff547
mov dword [edi + 0x38], 0xfb54f957
mov dword [edi + 0x3c], 0xff95fd97
mov dword [edi + 0x40], 0xc3c2c1ab
mov byte [edi + 0x44], 0
xor ebx, ebx
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [edi + ebx]
mov esi, eax
or esi, 0x61ef0420
mov ecx, ebx
or ecx, 0x61ef0420
add ecx, esi
lea esi, [ebx + ecx]
inc esi
xor esi, edx
mov ecx, esi
and ecx, 0xa0
mov edx, esi
xor edx, 0x5f
add edx, esi
sub edx, ecx
and esi, 0x5f
add edx, esi
inc dl
mov byte [edi + ebx], dl
inc ebx
dec eax
cmp ebx, 0x45
jne 0x4230c0
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 4]
movzx edx, word [ecx]
mov eax, dword [ebp - 0x18]
test dx, dx
je 0x423131
add ecx, 2
mov eax, dword [ebp - 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x423120
mov word [eax], 0
movzx ecx, word [edi]
test cx, cx
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x1c]
je 0x423161
add edi, 2
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x423150
mov word [eax], 0
movzx ecx, word [edx]
test cx, cx
je 0x423191
add edx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x423180
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x4231c1
add ebx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x4231b0
mov word [eax], 0
mov eax, dword [ebp + 0x14]
mov edi, dword [eax]
push 0
call fcn.00408640
add esp, 4
mov dword [esi], 0xff1ff903
mov dword [esi + 4], 0xe30efd10
mov dword [esi + 8], 0xe772e105
mov dword [esi + 0xc], 0xeb39e573
mov dword [esi + 0x10], 0xe9e8
mov byte [esi + 0x14], 0
mov ecx, 0x662a6faa
mov edx, dword [ebp - 0x10]
movzx esi, byte [edx + ecx - 0x662a6faa]
xor esi, ecx
mov ebx, esi
mov edx, esi
xor edx, 0x12bd1ad
add edx, esi
and esi, 0x2a41ad
and ebx, 0x66002e52
sub edx, ebx
mov ebx, edx
and ebx, esi
xor edx, esi
mov esi, dword [ebp - 0x10]
lea edx, [edx + ebx*2]
inc dl
mov byte [esi + ecx - 0x662a6faa], dl
inc ecx
cmp ecx, 0x662a6fbf
jne 0x423200
movzx edx, word [esi]
mov ecx, eax
test dx, dx
je 0x423271
add esi, 2
mov ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [esi]
add esi, 2
test dx, dx
jne 0x423260
mov word [ecx], 0
movzx edx, word [edi]
test dx, dx
mov ebx, dword [ebp + 0x10]
je 0x4232a1
add edi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [edi]
add edi, 2
test dx, dx
jne 0x423290
mov word [ecx], 0x5f
add ecx, 2
mov edx, dword [ebx]
movzx esi, word [edx]
test si, si
je 0x4232d1
add edx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], si
add ecx, 2
movzx esi, word [edx]
add edx, 2
test si, si
jne 0x4232c0
mov word [ecx], 0x5f
add ecx, 2
mov edx, dword [ebx + 8]
movzx esi, word [edx]
test si, si
je 0x423301
add edx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], si
add ecx, 2
movzx esi, word [edx]
add edx, 2
test si, si
jne 0x4232f0
mov word [ecx], 0
mov ecx, dword [ebp - 0x14]
mov dword [ecx], 0x4342412a
mov byte [ecx + 4], 0
mov ecx, 0x30e4b7f0
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [ebp - 0x14]
movzx edx, byte [edx + ecx - 0x30e4b7f0]
xor edx, ecx
lea esi, [edx + edx]
and esi, 0x100409e
xor edx, 0xb88684f
mov edi, esi
and edi, edx
xor edx, esi
lea edx, [edx + edi*2]
inc dl
mov esi, dword [ebp - 0x14]
mov byte [esi + ecx - 0x30e4b7f0], dl
mov edx, dword [ebp - 0x14]
inc ecx
cmp ecx, 0x30e4b7f5
jne 0x423320
push 0
push 1
push 0
push edx
push dword [ebp - 0x18]
push eax
push dword [ebp + 8]
call fcn.00423660
add esp, 0x1c
jmp case.0x422450.21
jmp dword [0x449028]
push edi
mov ebx, eax
call fcn.00408650
mov eax, ebx
add esp, 4
jmp dword [0x449030]
push esi
call fcn.00408650
add esp, 4
test edi, edi
setns cl
test bl, 0x10
sete al
and al, cl
add esp, 0x18
pop esi
pop edi
pop ebx
ret