Function at 0x427949
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x454
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x54], 0xc15ac759
mov dword [esp + 0x58], 0xcda1c3af
mov dword [esp + 0x5c], 0xc998cf5b
mov dword [esp + 0x60], 0xf552cba7
mov dword [esp + 0x64], 0xf1f6f79b
mov word [esp + 0x68], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
mov esi, ecx
xor esi, 0x2f
mov edx, eax
and edx, 0x20
sub edx, esi
xor dl, byte [esp + ecx + 0x54]
add dl, 0xeb
mov byte [esp + ecx + 0x54], dl
inc ecx
add eax, 2
cmp ecx, 0x16
jne case.default.0x427553
lea edi, [esp + 0x54]
lea ecx, [esp + 0x34]
push edi
call fcn.0043b340
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x447ef4]
jmp dword [0x447f00]
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x447f0c]
mov dword [esp + 0x54], 0x3e550c37
mov dword [esp + 0x58], 0xc325f34
mov dword [esp + 0x5c], 0x38333553
mov dword [esp + 0x60], 0x352e2a57
mov dword [esp + 0x64], 0x144d4636
mov dword [esp + 0x68], 0x2d404a4f
mov dword [esp + 0x6c], 0x262f4a2a
mov dword [esp + 0x70], 0xdab1d841
mov dword [esp + 0x74], 0xb2c4c2c2
mov dword [esp + 0x78], 0xd2bd97c3
mov dword [esp + 0x7c], 0x6192bbb3
mov dword [esp + 0x80], 0
mov eax, 0x18d99ae3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x18d99a8f]
xor ecx, eax
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
add cl, 0x90
mov byte [esp + eax - 0x18d99a8f], cl
inc eax
cmp eax, 0x18d99b13
jne 0x4275e0
lea eax, [esp + 0x48]
lea ecx, [esp + 0x34]
push 0
push 0x2b
push edi
push eax
call fcn.0043bce0
mov ebp, dword [esp + 0x48]
mov ebx, dword [esp + 0x4c]
xor eax, eax
cmp ebp, ebx
sete al
mov dword [esp + 0x24], ebx
jmp dword [eax*4 + 0x447f14]
mov eax, ebx
sub eax, ebp
sar eax, 2
imul eax, eax, 0x421
push eax
call fcn.00409860
add esp, 4
mov dword [esp + 0x30], 0
xor ecx, ecx
cmp ebp, ebx
setne cl
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], eax
jmp dword [ecx*4 + 0x447f1c]
add ebp, 4
xor eax, eax
cmp ebp, ebx
setne al
jmp dword [eax*4 + 0x447f1c]
mov esi, dword [ebp]
push 0x400
push 0
push edi
call fcn.004098e0
add esp, 0xc
lea eax, [esp + 0x20]
lea ecx, [esp + 0x34]
push eax
push 0x400
push edi
push esi
call fcn.0043bbe0
cmp eax, 0xc0000000
setae al
cmp dword [esp + 0x20], 0
sete cl
or cl, al
movzx eax, cl
jmp dword [eax*4 + 0x447f2c]
mov eax, 1
jmp dword [eax*4 + 0x447f34]
xor eax, eax
jmp dword [eax*4 + 0x447f34]
mov byte [esp + 0x453], 0
movzx eax, byte [esp + 0x54]
xor edx, edx
test al, al
je 0x427711
mov ecx, edi
nop
nop
cmp al, 0x2e
je 0x42770f
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x427700
jmp 0x427711
mov edx, ecx
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x447f3c]
movzx eax, byte [edx + 1]
inc edx
mov dword [esp + 0x1c], 0
test al, al
je 0x427753
mov ecx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp al, 0x2e
je 0x42774f
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x427740
jmp 0x427753
mov dword [esp + 0x1c], ecx
xor eax, eax
cmp dword [esp + 0x1c], 0
setne al
jmp dword [eax*4 + 0x447f44]
mov dword [esp + 8], edx
jmp dword [0x447f4c]
movzx ecx, byte [eax]
test cl, cl
mov edx, dword [esp + 0x14]
je 0x42778b
inc eax
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x427780
mov byte [edx], 0
mov ebx, dword [esp + 0x24]
mov word [edx], 0x203a
add edx, 2
jmp 0x427b3c
mov esi, dword [esp + 0x1c]
mov edi, esi
sub edi, edx
mov eax, edi
and eax, 0xfffffffc
mov ecx, edi
and ecx, 3
mov dword [esp + 0x10], edi
or edi, 3
imul edi, ecx
xor ecx, 3
imul ecx, eax
add edi, ecx
shr edi, 2
movzx eax, byte [esi - 1]
cmp eax, 0x3d
je 0x4277d5
cmp eax, 0x2e
jne 0x4277dc
mov eax, edi
not eax
lea edi, [eax + edi*2]
mov eax, dword [esp + 0x10]
movzx eax, byte [edx + eax - 2]
cmp eax, 0x3d
je 0x4277ef
cmp eax, 0x2e
jne 0x4277f6
mov dword [esp + 0x18], ebp
dec edi
jmp 0x4277fa
mov dword [esp + 0x18], ebp
mov dword [esp + 0x44], edi
lea eax, [edi + 1]
push eax
call fcn.00409860
add esp, 4
mov dword [esp + 4], eax
mov esi, dword [esp + 8]
cmp dword [esp + 0x1c], esi
mov edi, dword [esp + 0x10]
je 0x427910
xor ebx, ebx
mov ebp, 2
jmp 0x427847
mov ebx, dword [esp]
lea eax, [ebp + 4]
add ebp, 2
cmp ebp, edi
mov ebp, eax
mov esi, dword [esp + 8]
jae 0x427910
movzx eax, byte [esi + ebp - 2]
push eax
call fcn.0041dcf0
add esp, 4
mov byte [esp], al
movzx eax, byte [esi + ebp - 1]
push eax
call fcn.0041dcf0
add esp, 4
movzx edx, byte [esp]
shl dl, 2
mov ecx, eax
shr cl, 4
and cl, 3
or cl, dl
lea edx, [ebx + 1]
mov dword [esp], edx
mov edx, dword [esp + 4]
mov dword [esp + 0xc], ebx
mov byte [edx + ebx], cl
cmp ebp, edi
jae 0x427830
mov byte [esp + 0x28], al
movzx eax, byte [esi + ebp]
push eax
call fcn.0041dcf0
mov edi, dword [esp + 0x14]
add esp, 4
cmp al, 0x40
mov ebx, dword [esp]
je 0x427833
mov bh, byte [esp + 0x28]
shl bh, 4
mov byte [esp], al
shr al, 2
and al, 0xf
or al, bh
mov esi, dword [esp + 0xc]
lea ebx, [esi + 2]
mov edx, dword [esp + 4]
mov byte [edx + esi + 1], al
lea eax, [ebp + 1]
cmp eax, edi
jae 0x427833
mov eax, dword [esp + 8]
movzx eax, byte [eax + ebp + 1]
push eax
call fcn.0041dcf0
mov edi, dword [esp + 0x14]
add esp, 4
cmp al, 0x40
movzx edx, byte [esp]
je 0x427833
shl dl, 6
add al, dl
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0xc]
mov byte [edx + ebx + 2], al
add ebx, 3
jmp 0x427833
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 4]
mov byte [ecx + eax], 0
push ecx
call fcn.00401000
mov edx, dword [esp + 0xc]
add esp, 4
lea edi, [esp + 0x54]
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x24]
jmp dword [0x447f54]
mov esi, eax
jmp dword [0x447f5c]
jmp dword [0x447f64]
mov esi, dword [esp + 0x1c]
mov ecx, edx
sar esi, cl
mov eax, esi
and eax, 0xfffffffc
mov ecx, esi
and ecx, 3
mov edi, esi
or edi, 3
imul edi, ecx
xor ecx, 3
imul ecx, eax
add edi, ecx
shr edi, 2
mov dword [esp], esi
movzx eax, byte [edx + esi - 1]
cmp eax, 0x3d
je 0x427980
cmp eax, 0x2e
jne 0x427987
mov eax, edi
not eax
lea edi, [eax + edi*2]
mov eax, dword [esp]
movzx eax, byte [edx + eax - 2]
cmp eax, 0x3d
je 0x427999
cmp eax, 0x2e
jne 0x4279a0
mov dword [esp + 0x18], ebp
dec edi
jmp 0x4279a4
mov dword [esp + 0x18], ebp
mov dword [esp + 0x28], edi
push edi
call fcn.00409860
add esp, 4
mov dword [esp + 0xc], eax
cmp dword [esp], 0
mov esi, dword [esp + 8]
je 0x427ac0
xor edi, edi
mov ebp, 2
jmp 0x4279ea
mov esi, dword [esp + 4]
lea eax, [ebp + 4]
add ebp, 2
mov edi, esi
cmp ebp, edx
mov ebp, eax
mov esi, dword [esp + 8]
jae 0x427ac0
movzx eax, byte [esi + ebp - 2]
push eax
call fcn.0041dcf0
add esp, 4
mov ebx, eax
movzx eax, byte [esi + ebp - 1]
push eax
call fcn.0041dcf0
mov edx, dword [esp + 4]
add esp, 4
shl bl, 2
mov ecx, eax
shr cl, 4
and cl, 3
or cl, bl
lea ebx, [edi + 1]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xc]
mov byte [ebx + edi], cl
cmp ebp, edx
jae 0x4279d0
mov byte [esp + 0x10], al
movzx eax, byte [esi + ebp]
push eax
call fcn.0041dcf0
mov edx, dword [esp + 4]
add esp, 4
cmp al, 0x40
mov esi, dword [esp + 4]
je 0x4279d4
movzx ecx, byte [esp + 0x10]
shl cl, 4
mov edx, eax
shr dl, 2
and dl, 0xf
or dl, cl
lea esi, [edi + 2]
mov ecx, dword [esp + 0xc]
mov byte [ecx + edi + 1], dl
mov edx, dword [esp]
lea ecx, [ebp + 1]
cmp ecx, edx
jae 0x4279d4
mov ecx, dword [esp + 8]
movzx ecx, byte [ecx + ebp + 1]
push ecx
mov byte [esp + 8], al
call fcn.0041dcf0
mov edx, dword [esp + 4]
add esp, 4
movzx ecx, byte [esp + 4]
cmp al, 0x40
je 0x4279d4
shl cl, 6
add al, cl
mov ecx, dword [esp + 0xc]
mov byte [ecx + edi + 2], al
add edi, 3
mov esi, edi
jmp 0x4279d4
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0xc]
mov byte [ecx + eax], 0
push ecx
call fcn.00401000
mov edx, dword [esp + 0xc]
add esp, 4
mov ebp, dword [esp + 0x18]
jmp case.0x42775d.2
mov dword [esp + 0x20], 0x83203433
mov ecx, 0xc6d5b720
nop
movzx ebx, byte [esp + ecx + 0x392a4900]
mov edx, ebx
and edx, ecx
add dl, dl
sub bl, dl
movzx edx, bl
add edx, ecx
add dl, 0x60
mov byte [esp + ecx + 0x392a4900], dl
inc ecx
cmp ecx, 0xc6d5b724
jne 0x427af0
lea ecx, [esp + 0x20]
push ecx
push eax
call fcn.00401880
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x447f7c]
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
movzx eax, byte [esp + 0x54]
test al, al
je 0x427b5b
lea ecx, [esp + 0x55]
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x427b50
mov byte [edx], 0xa
inc edx
mov dword [esp + 0x14], edx
mov al, 1
mov dword [esp + 0x30], eax
jmp case.0x42775d.12
push dword [esp + 4]
call fcn.00409870
add esp, 4
push dword [esp + 4]
call fcn.00409870
add esp, 4
jmp dword [0x447f70]
push esi
call fcn.00401ac0
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x447f74]
push esi
call fcn.00402070
add esp, 4
add ebp, 4
xor eax, eax
cmp ebp, ebx
setne al
jmp dword [eax*4 + 0x447f1c]
mov ebx, dword [esp + 0x30]
mov eax, ebx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x447f24]
jmp dword [0x447f84]
xor esi, esi
test ebp, ebp
jne 0x427c98
jmp 0x427ca5
mov eax, dword [esp + 0x14]
mov byte [eax], 0
mov dword [esp + 0x54], 0xadaaabf3
mov dword [esp + 0x58], 0xb9898aaf
mov dword [esp + 0x5c], 0xbcb0b2b3
mov dword [esp + 0x60], 0x86b292f1
mov dword [esp + 0x64], 0x95fbb883
mov dword [esp + 0x68], 0x87bd82b9
mov dword [esp + 0x6c], 0x898ec189
mov word [esp + 0x70], 0x1f8c
mov dword [esp + 0x72], 0
mov byte [esp + 0x76], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xcb
xor cl, byte [esp + eax + 0x54]
add cl, 9
mov byte [esp + eax + 0x54], cl
inc eax
cmp eax, 0x23
jne 0x427c40
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x14]
sub esi, edx
lea eax, [esp + 0x54]
mov ecx, dword [esp + 0x468]
push esi
push edx
push eax
call fcn.0040a690
mov ebx, eax
jmp dword [0x447f84]
push dword [esp + 0x2c]
call fcn.00409870
add esp, 4
and bl, 1
mov esi, ebx
mov ebp, dword [esp + 0x48]
mov ebx, dword [esp + 0x4c]
test ebp, ebp
je 0x427ca5
cmp ebp, ebx
je 0x427ca5
push ebp
call fcn.00409870
add esp, 4
mov ebx, esi
lea ecx, [esp + 0x34]
call fcn.0043b790
mov eax, ebx
add esp, 0x454
pop esi
pop edi
pop ebx
pop ebp
ret
lea ecx, [esp + 0x34]
push 0x410
call fcn.0043b640
lea ecx, [esp + 0x34]
push 0x410
call fcn.0043b640
jmp dword [0x447f04]
mov ecx, edi
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add ecx, 2
cmp word [eax], 0
jne 0x427eb0
sub eax, edi
cmp eax, 0xffffffd9
jge 0x427ed0
mov eax, 0xffffffff
jmp 0x427ed3
xor eax, eax
jmp 0x428576
add eax, 0x26
push eax
call fcn.00409860
add esp, 4
mov ebp, eax
mov dword [esp + 0x10], 0x1789197c
mov dword [esp + 0x14], 0x13801587
mov dword [esp + 0x18], 0xf97118a
mov dword [esp + 0x1c], 0xb6e0d97
mov dword [esp + 0x20], 0x7950997
mov dword [esp + 0x24], 0x3980596
mov dword [esp + 0x28], 0x3fa50199
mov dword [esp + 0x2c], 0x3bb03d6e
mov dword [esp + 0x30], 0x37ac39a4
mov word [esp + 0x34], 0x3534
mov dword [esp + 0x36], 0
mov byte [esp + 0x3a], 0
mov eax, 0x35fd51e7
nop
movzx ecx, byte [esp + eax - 0x35fd51d7]
lea edx, [eax - 0x35fd5161]
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov byte [esp + eax - 0x35fd51d7], cl
inc eax
cmp eax, 0x35fd5212
jne 0x427f40
movzx ecx, word [edi]
mov eax, ebp
test cx, cx
je 0x427fa1
mov edx, edi
add edx, 2
mov eax, ebp
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 0x427f90
mov word [eax], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x427fd1
lea edx, [esp + 0x12]
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 0x427fc0
mov word [eax], 0
jmp dword [0x447f94]
jmp dword [0x447f9c]
mov esi, dword [esp + 0x6c]
mov ecx, esi
call fcn.0042af80
push esi
call fcn.00409870
add esp, 4
mov eax, dword [case.0x42775d.32]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov ebx, ebp
mov ebp, edi
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x10], 0x14151617
mov word [esp + 0x14], 0
mov ecx, 0x9b4f5a3c
nop
nop
nop
movzx edx, byte [esp + ecx + 0x64b0a5d4]
xor edx, ecx
lea esi, [edx - 0x88cc32d]
mov edi, esi
and edi, 1
and edx, 1
and esi, 0xfe
or esi, edx
lea edx, [esi + edi*2]
mov byte [esp + ecx + 0x64b0a5d4], dl
inc ecx
cmp ecx, 0x9b4f5a42
jne 0x4284b0
mov ecx, dword [0x44d110]
test ecx, ecx
je 0x428518
mov edx, dword [esp + 0x10]
xor esi, esi
mov edi, dword [0x44d114]
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x1b6183f2
je 0x428510
inc esi
cmp ecx, esi
jne 0x428500
jmp 0x428518
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x42851e
jmp dword [0x448024]
push eax
push 4
push ecx
push dword [0x44d118]
call fcn.0043dd00
add esp, 0x10
jmp dword [0x448024]
add esp, 0xe8
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [ebp + esi + 4], ecx
mov edi, dword [esp + 4]
add edi, 8
mov ecx, dword [esp + 0x7c]
add ecx, 4
mov ecx, dword [ecx]
xor eax, eax
test ecx, ecx
setne al
mov ebx, ebp
mov esi, dword [esp + 0x68]
jmp dword [eax*4 + 0x447fec]
mov eax, dword [ecx]
mov dword [esp + 0x70], eax
mov edx, edi
sub edx, ebx
cmp edi, esi
mov dword [esp + 0x7c], ecx
mov dword [esp], edx
je 0x4285d4
mov eax, ebx
jmp 0x428695
mov eax, edx
sar eax, 3
mov ecx, edx
shr ecx, 2
and ecx, 2
xor eax, 1
add eax, ecx
mov ecx, esi
sub ecx, ebx
sar ecx, 3
mov ebp, ecx
shr ebp, 1
add ebp, ecx
cmp ebp, eax
mov edi, edx
ja 0x4285fb
mov ebp, eax
mov eax, ebp
and eax, 0xfffffff7
mov ecx, ebp
and ecx, 8
mov edx, ebp
or edx, 8
imul edx, ecx
xor ecx, 8
imul ecx, eax
add edx, ecx
push edx
call fcn.00409860
add esp, 4
test ebx, ebx
je 0x42868c
mov dword [esp + 0x74], ebp
cmp ebx, esi
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
je 0x428675
mov edi, dword [esp + 4]
mov ecx, edi
not ecx
mov dword [esp + 0x68], ecx
mov ebx, edi
mov ebp, esi
mov esi, ecx
and esi, dword [esp + 4]
mov edx, ebx
and edx, dword [esp + 0x68]
sub edx, esi
mov esi, dword [edi]
mov eax, dword [esp + 8]
mov dword [eax + edx], esi
mov esi, dword [edi + 4]
mov dword [eax + edx + 4], esi
mov esi, ebp
mov dword [edi], 0
add ebx, 8
add ecx, 0xfffffff8
add edi, 8
cmp edi, ebp
jne 0x428640
push dword [esp + 4]
call fcn.00409870
add esp, 4
mov edi, dword [esp]
mov eax, dword [esp + 8]
mov ebp, dword [esp + 0x74]
lea esi, [eax + ebp*8]
mov edx, edi
mov edi, eax
add edi, edx
mov dword [esp + 0x68], esi
mov dword [esp + 4], edi
mov dword [eax + edx], 0
mov ebp, eax
mov dword [eax + edx + 4], 0
xor ebx, ebx
mov esi, dword [esp + 0x70]
mov edi, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi + ebx], 0
lea ebx, [ebx + 1]
jne 0x4286c0
push ebx
call fcn.00409860
add esp, 4
mov dword [ebp + edi], eax
mov ecx, ebx
shr ecx, 2
mov edx, esi
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, ebx
and edx, 0xfffffffc
add eax, edx
add edx, esi
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov esi, edx
mov edi, eax
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov esi, dword [esp]
mov ecx, ebx
inc cl
test cl, 1
jne 0x428723
mov ecx, ebx
and ecx, 2
movzx edx, byte [edx + ecx]
mov byte [eax + ecx], dl
xor ecx, ecx
cmp ebx, 1
je 0x428590
mov dword [esp + 8], ebp
mov ecx, 0xffffffff
mov eax, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x70]
movzx edi, byte [edx + eax - 1]
xor edi, ecx
mov ecx, edi
shr ecx, 1
mov edx, edi
and edx, 1
neg edx
and edx, 0xedb88320
xor edx, ecx
mov esi, edx
shr esi, 1
mov ecx, edi
shl ecx, 0x1e
sar ecx, 0x1f
and ecx, 0xedb88320
xor ecx, esi
mov ebp, edi
shl ebp, 0x1d
sar ebp, 0x1f
and ebp, 0x76dc419
mov esi, edi
shl esi, 0x1c
sar esi, 0x1f
and esi, 0xedb8832
xor esi, ebp
mov ebp, edi
shl ebp, 0x1b
sar ebp, 0x1f
and ebp, 0x1db71064
shl edi, 0x1a
sar edi, 0x1f
and edi, 0x3b6e20c8
xor edi, ebp
xor edi, esi
mov esi, ecx
shr esi, 6
xor edi, esi
shl edx, 0x1a
sar edx, 0x1f
and edx, 0x76dc4190
xor edx, edi
shl ecx, 0x1a
sar ecx, 0x1f
and ecx, 0xedb88320
xor ecx, edx
inc eax
cmp ebx, eax
jne 0x428740
not ecx
mov ebp, dword [esp + 8]
mov esi, dword [esp]
jmp 0x428590
mov dword [esp + 0x10], 0x397c3b71
mov dword [esp + 0x14], 0x258b279c
mov dword [esp + 0x18], 0x21b023b5
mov dword [esp + 0x1c], 0x2db92f8a
mov dword [esp + 0x20], 0x298e2b85
mov dword [esp + 0x24], 0x15871785
mov dword [esp + 0x28], 0x11b81386
mov dword [esp + 0x2c], 0x1db71f87
mov dword [esp + 0x30], 0x19801b4e
mov dword [esp + 0x34], 0x5ac07b4
mov dword [esp + 0x38], 0x304
mov edx, 0xb53af00b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx + 0x4ac51005]
mov ebx, eax
mov edi, eax
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0x7d
mul cl
mov ecx, eax
mov eax, edi
add cl, al
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, edx
add al, 0xc9
mov byte [esp + edx + 0x4ac51005], al
inc edx
cmp edx, 0xb53af037
jne 0x428bc0
push 0
push esi
push ebp
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x60
push 3
push 0x120089
lea eax, [esp + 0xb4]
push eax
mov dword [esp + 0x74], ebp
push ebp
call fcn.00440350
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x447fb4]
xor ebp, ebp
xor ebx, ebx
jmp dword [0x448024]
lea eax, [esp + 0x98]
push 0
push eax
push dword [esp + 0xb0]
call fcn.004406d0
add esp, 0xc
not eax
shr eax, 0x1f
xor edi, edi
xor ebp, ebp
jmp dword [eax*4 + 0x447fbc]
mov edi, dword [esp + 0x98]
lea eax, [edi + 1]
push eax
call fcn.00409860
add esp, 4
push 0
push edi
mov dword [esp + 0x14], eax
push eax
push dword [esp + 0xb4]
call fcn.004407c0
add esp, 0x10
not eax
shr eax, 0x1f
xor edi, edi
xor ebp, ebp
jmp dword [eax*4 + 0x447fc4]
jmp dword [0x44800c]
mov edi, dword [esp + 0x98]
mov ebx, dword [esp + 0xc]
mov byte [ebx + edi], 0
push 0x20
call fcn.00409860
add esp, 4
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0
mov dword [esp + 0x6c], eax
mov ecx, eax
push edi
push ebx
call fcn.0042ac20
movzx eax, al
xor edi, edi
xor ebp, ebp
jmp dword [eax*4 + 0x447fcc]
mov dword [esp + 0x10], 0x3d283659
mov dword [esp + 0x14], 0x22302039
mov dword [esp + 0x18], 0x3d2d517d
mov dword [esp + 0x1c], 0x487b2436
mov dword [esp + 0x20], 0x26353828
mov dword [esp + 0x24], 0x303f5061
mov dword [esp + 0x28], 0x2528202d
mov word [esp + 0x2c], 0x9b25
mov dword [esp + 0x2e], 0
mov eax, 0x12cb73e1
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax - 0x12cb73d1]
mov edx, eax
and edx, edi
mov ebx, edx
and ebx, 2
mov ebp, edx
or ebp, 0xfffffffd
inc ebp
mov ecx, edx
and ecx, 0xfffffffd
imul ecx, ebp
or edx, 2
imul edx, ebx
lea ebx, [eax + edi]
add ecx, edi
sub ecx, edx
add ecx, eax
and ebx, 1
or ecx, 1
add ecx, ebx
add cl, 0x9a
mov byte [esp + eax - 0x12cb73d1], cl
inc eax
cmp eax, 0x12cb7403
jne 0x428d70
mov ecx, dword [esp + 0x6c]
push esi
call fcn.0042ae10
xor ecx, ecx
test eax, eax
setne cl
xor ebp, ebp
xor edi, edi
jmp dword [ecx*4 + 0x447fd4]
jmp dword [0x447ff4]
add eax, 8
xor ebx, ebx
mov ecx, dword [eax]
xor eax, eax
test ecx, ecx
setne al
xor edi, edi
xor esi, esi
xor ebp, ebp
jmp dword [eax*4 + 0x447fec]
push edi
call fcn.00409870
add esp, 4
push edi
call fcn.00409870
add esp, 4
jmp dword [0x447fa4]
xor eax, eax
cmp word [ebp], 0x2a
sete al
jmp dword [eax*4 + 0x447fac]
int3
jbe 0x447f81
add byte [edi], bl
ja 0x447f85
add byte [eax + 0x76], dh
inc edx
jbe 0x447f89
add byte [edi + esi*2 + 0x42], ah
add byte [eax + 0x49004277], ah
jns 0x447f95
add byte [ebx], bh
jns 0x447f99
add byte [ecx + 0x79], cl
inc edx
add byte [ebx + 0x79], al
inc edx
add byte [ecx + 0x7700427b], cl
jnp 0x447fa9
add byte [ebx + 0x7b], ch
inc edx
add byte [ebx + 0x7b], ch
inc edx
add byte [ecx - 0x5fffbd85], cl
jnp 0x447fb9
add dl, ah
jp 0x447fbd
add byte [ebx + edi*2], dh
inc edx
add byte [esi + 0x77], ch
inc edx
ja 0x447fc5
add byte [ebx + 0x7c], bh
inc edx
jl 0x447fc9
add byte [edi - 0x59ffbd84], al
jle 0x447fd1
jl 0x447fcd
add byte [esi - 0x36ffbd82], ah
add cl, cl
jle 0x447fd5
add ah, bl
jg 0x447fd9
add byte [eax], ah
nop
inc edx
add byte [ecx], dl
nop
inc edx
add byte [eax], cl
nop
inc edx
add byte [eax], ah
nop
inc edx
add byte [eax], cl
nop
inc edx
add byte [ecx], dl
mov word [edx], es
pop eax
mov eax, dword [edx]
cmp ecx, dword [edx + eax*2 + 0x428c5700]
add byte [esi - 2147466620], cl
mov word [edx], es
mov edx, 0xc000428c
mov word [edx], es
mov es, word [edx + eax*2 + 0x428c8000]
add byte [edx - 1073724788], bh
test byte [edx], al
or byte [edx + eax*2 + 0x428cba00], 0
mov word [edx], es
ror byte [edx + eax*2 + 0x428dd400], 0
mov word [edx], es
aam 0x8d
inc edx
add byte [0xd400428d], bl
lea eax, [edx]
sbb eax, 0xd400428d
lea eax, [edx]
aam 0x8d
inc edx
add dl, bl
lea eax, [edx]
fimul dword [ebp + 0x10042]
lea eax, [edx]
add dword [eax], eax
add byte [eax], al
add dword [eax], eax
add byte [eax], al
sti
nop
inc edx
add byte [ecx], al
add byte [eax], al
add ah, dl
lea eax, [edx]
mov eax, 0x5e004285
test byte [edx], al
jb 0x447f7e
inc edx
add byte [eax - 0x7fffbd7c], al
test byte [edx], al
add byte [edx + eax*2 + 0x428cba00], 0
add byte [edx + eax*2 + 0x42848e00], 0
add dword [eax], eax
add byte [eax], al
add dword [eax], eax
add byte [eax], al
sti
nop
inc edx
add byte [ecx], al
add byte [eax], al
add byte [ebp - 0x7d], bl
inc edx
add byte [ebp - 0x74], al
inc edx
add byte [edi - 0x7d], dl
inc edx
add byte [esi], dh
test dword [edx], eax
or cl, byte [edx - 0x7745ffbe]
inc edx
add byte [edx], cl
mov al, byte [edx]
add dword [ebx - 0x7c6affbe], 0x42
add ah, ch
add dword [edx], 0xffffffd6
add dword [edx], 0xfffffff1
add dword [edx], 0xffffffde
add dword [edx], 0xffffffec
add dword [edx], 0x4d
test byte [edx], al
pop eax
test byte [edx], al
and cl, byte [esi - 0x71f6ffbe]
inc edx
add byte [ecx - 0x72], al
add byte [edx], ah
mov es, word [edx]
or dword [esi - 0x71beffbe], ecx
inc edx
add byte [ecx], cl
mov es, word [edx]
test dword [edi - 0x71a5ffbe], 0x8fe60042
inc edx
add byte [esi + ecx*4 - 0x704affbe], bl
inc edx
add byte [edi + ecx*4], al
inc edx
add byte [ebp - 0x11ffbd71], dh
pop dword [edx]
mov ch, 0x8f
inc edx
add dl, ah
jg 0x4480dd
add bl, al
add dword [edx], 0x42800c
outsd dx, dword [esi]
add byte [edx], 0x6f
add byte [edx], 0xb4
add byte [edx], 0xe8
add byte [edx], 0xf0
add byte [edx], 0x30
add dword [edx], 0x428121
mov al, byte [0x30004280]
add dword [edx], 0x428190
pushal
add dword [edx], 0x428180
inc eax
add dword [edx], 0x428190
dec edi
add dword [edx], 0x42819e
loop 0x448063
add dword [edx], 0x4281e2
outsb dx, byte [esi]
add byte [edx], 0x7b
add byte [edx], 0xaf
add dword [edx], 0x4281c3
rol byte [ecx - 0x7e2fffbe], 1
inc edx
add al, dl
add dword [edx], 0x4281d2
mov ebx, 0xe000428f
pop dword [edx]
loopne 0x44809d
inc edx
add byte [esi - 0x7e], ch
inc edx
add byte [ebx - 0x7e], bh
inc edx
add byte [edi - 0x3cffbd7f], ch
add dword [edx], 0x4281d0
rol byte [ecx - 0x7e2fffbe], 1
inc edx
add dl, dl
add dword [edx], 0x428fbb
loopne 0x448099
inc edx
add al, ah
pop dword [edx]
loopne 0x4480a1
inc edx
add al, ah
pop dword [edx]
loopne 0x4480a5
inc edx
add al, ah
pop dword [edx]
out 0x8f, al
inc edx
add al, ch
xchg dword [edx], eax
test dword [edi - 0x7caeffbe], 0x90310042
inc edx
add dh, ah
pop dword [edx]
call 0xf744c3a8
xchg dword [edx], eax
push ecx
add dword [edx], 0x31
nop
inc edx
add bl, ah
nop
inc edx
add ah, ch
nop
inc edx
add byte [ecx], dh
nop
inc edx
add bl, ah
nop
inc edx
add byte [ebx - 0x7d], bh
inc edx
add byte [edx - 0x70], al
inc edx
add ch, dh
lea eax, [edx]
add cl, byte [esi - 0x6dfcffbe]
inc edx
add byte [eax], bl
xchg edx, eax
inc edx
add byte [eax], ah
xchg edx, eax
inc edx
add byte [eax], ah
xchg edx, eax
inc edx
add byte [ecx - 0x5e], cl
inc edx
add byte [eax], ah
xchg edx, eax
inc edx
add byte [edx + edx*4 + 0x42], ah
add byte [ecx], cl
xchg edx, eax
inc edx
add byte [edx + edx*4 + 0x42], ah
add byte [ecx - 0x6e], dh
inc edx
add byte [ecx - 0x5dffbd6e], al
xchg edx, eax
inc edx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx + 0x1004292], al
add byte [eax], al
add byte [ebx - 0x6bffbd6e], cl
xchg edx, eax
inc edx
add byte [eax - 0x5fffbd6e], ah
xchg edx, eax
inc edx
add byte [ecx - 0x5e], cl
inc edx
add byte [eax - 0x3ffbd6e], ah
popfd
inc edx
add bl, ah
lahf
inc edx
add ah, bh
popfd
inc edx
add cl, bl
mov eax, dword [0xa2340042]
inc edx
add ch, ah
xchg edx, eax
inc edx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edx], dh
inc edx
add byte [edx], bh
mov byte [0xa2430042], al
inc edx
add byte [esp + edx*4 + 0x42], al
add byte [eax - 0x6c], dh
inc edx
add al, dl
popfd
inc edx
add bl, ah
popfd
inc edx
add al, dl
popfd
inc edx
add byte [eax], ah
cdq
inc edx
add byte [eax - 0x68], ah
inc edx
add byte [ecx + ebx*4], dh
inc edx
add byte [eax - 0x63], dl
inc edx
add byte [edx - 0x67], ch
inc edx
add byte [ecx - 0x69ffbd67], cl
cdq
inc edx
add byte [eax], bl
pushfd
inc edx
add byte [esi], ah
pushfd
inc edx
add byte [eax], bl
popfd
inc edx
add byte [ecx], ah
popfd
inc edx
add byte [eax - 0x63], al
inc edx
add byte [ebp + 0x7f00429d], bl
popfd
inc edx
add byte [ebx + 0x7f00429d], cl
popfd
inc edx
add byte [ebp - 0x3fffbd63], bl
popfd
inc edx
add al, al
popfd
inc edx
add byte [eax - 0x63], dl
inc edx
add al, al
popfd
inc edx
add byte [esi - 0x63], dl
inc edx
add byte [eax - 0x68], ah
inc edx
add byte [ebp + ebx*4 + 0x42], bl
add byte [eax - 0x63], dh
inc edx
add byte [eax - 0x68], ah
inc edx
add byte [eax - 0x63], dh
inc edx
add al, al
xchg edi, eax
inc edx
add byte [esi - 0x68], dh
inc edx
add byte [esi - 0x68], dh
inc edx
add byte [esp + edx*4 + 0x42], al
add byte [edi - 0x6c], cl
inc edx
add byte [eax - 0x4fffbd6c], al
xchg edx, eax
inc edx
add byte [edi + 0x5b004294], al
xchg edi, eax
inc edx
add byte [eax - 0x69], dh
inc edx
add byte [esi - 0x69], dh
inc edx
add byte [eax - 0x32ffbd6e], dh
mov dword [0xabe00042], eax
inc edx
add byte [esp], al
inc edx
add byte [edx], dl
movsb byte es:[edi], byte [esi]
inc edx
add byte [esp], cl
inc edx
add al, ah
stosd dword es:[edi], eax
inc edx
add bh, cl
stosd dword es:[edi], eax
inc edx
add dh, al
stosd dword es:[edi], eax
inc edx
add al, ah
stosd dword es:[edi], eax
inc edx
add dh, al
stosd dword es:[edi], eax
inc edx
add byte [eax], dh
movsb byte es:[edi], byte [esi]
inc edx
add byte [eax], dh
movsb byte es:[edi], byte [esi]
inc edx
add byte [eax], dh
movsb byte es:[edi], byte [esi]
inc edx
add byte [edx], dh
movsb byte es:[edi], byte [esi]
inc edx
add byte [edx + 0x460042ab], bl
movsb byte es:[edi], byte [esi]
inc edx
add byte [esi], bh
stosb byte es:[edi], al
inc edx
add byte [ebp - 0x5c], ch
inc edx
add byte [ebp - 0x4affbd5c], ah
movsb byte es:[edi], byte [esi]
inc edx
add byte [eax - 0x5affbd5b], dl
movsb byte es:[edi], byte [esi]
inc edx
add al, ah
movsd dword es:[edi], dword [esi]
inc edx
add al, dl
movsb byte es:[edi], byte [esi]
inc edx
add al, ah
movsd dword es:[edi], dword [esi]
inc edx
add al, ah
movsd dword es:[edi], dword [esi]
inc edx
add dh, ah
movsd dword es:[edi], dword [esi]
inc edx
add al, ah
movsd dword es:[edi], dword [esi]
inc edx
add dh, dh
movsd dword es:[edi], dword [esi]
inc edx
add al, dl
movsb byte es:[edi], byte [esi]
inc edx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add dh, dh
movsd dword es:[edi], dword [esi]
inc edx
add byte [esi], al
cmpsb byte [esi], byte es:[edi]
inc edx
add al, dl
movsb byte es:[edi], byte [esi]
inc edx
add byte [esi], dl
cmpsb byte [esi], byte es:[edi]
inc edx
add al, dl
movsb byte es:[edi], byte [esi]
inc edx
add byte [esi], ah
cmpsb byte [esi], byte es:[edi]
inc edx
add al, dl
movsb byte es:[edi], byte [esi]
inc edx
add byte [esi - 0x596fffbe], al
inc edx
add byte [eax - 0x69ffbd5a], dh
cmpsb byte [esi], byte es:[edi]
inc edx
add cl, cl
cmpsb byte [esi], byte es:[edi]
inc edx
add byte [eax - 0x78ffbd5a], dh
test eax, 0xa6e70042
inc edx
add byte [edi - 0x590fffbe], dl
inc edx
add byte [esi], bl
cmpsd dword [esi], dword es:[edi]
inc edx
add byte [edi - 0x568bffbe], dl
inc edx
add byte [edx], ch
cmpsd dword [esi], dword es:[edi]
inc edx
add byte [esi], dh
cmpsd dword [esi], dword es:[edi]
inc edx
add byte [eax - 0x59], bl
inc edx
add byte [edi - 0x59], dh
inc edx
add byte [eax - 0x59], bl
inc edx
add byte [eax - 0x3effbd59], cl
cmpsd dword [esi], dword es:[edi]
inc edx
add byte [ecx - 0x57], ah
inc edx
add byte [ecx + ebp*4 + 0x42], dh
add byte [esi - 0x57], bh
inc edx
add byte [edi + 0x10042a9], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edx], dl
lodsb al, byte [esi]
inc edx
add byte [0xd00042aa], cl
movsb byte es:[edi], byte [esi]
inc edx
add byte [edi + 0xa0042a4], ch
lodsb al, byte [esi]
inc edx
add dl, dh
stosd dword es:[edi], eax
inc edx
add bl, bh
stosd dword es:[edi], eax
inc edx
add byte [edx], cl
lodsb al, byte [esi]
inc edx
add dl, dh
stosd dword es:[edi], eax
inc edx
add byte [eax], dl
lodsb al, byte [esi]
inc edx
add byte [eax], dl
lodsb al, byte [esi]
inc edx
add byte [esi], bh
stosb byte es:[edi], al
inc edx
add byte [eax], dl
lodsb al, byte [esi]
inc edx
add byte [edx - 0x56], bh
inc edx
add byte [esi], cl
stosd dword es:[edi], eax
inc edx
add byte [esi], cl
stosd dword es:[edi], eax
inc edx
add byte [edx - 0x5fffbd55], bl
stosd dword es:[edi], eax
inc edx
add byte [esi - 0x59ffbd55], bh
stosd dword es:[edi], eax
inc edx
add byte [edi - 0x41ffbd55], ch
stosd dword es:[edi], eax
inc edx
add byte [esi + 0x10042ab], ah
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [esi - 0xfffbd55], bh
stosd dword es:[edi], eax
inc edx
add al, dh
stosd dword es:[edi], eax
inc edx
add al, dh
stosd dword es:[edi], eax
inc edx
add byte [edx + ebp*4 + 0x42], al
add byte [eax], al
add byte [eax], al
add dh, dh
aam 0xef
add byte [ebx - 0x27], dl
out dx, eax
add byte [ecx - 0x27], bh
out dx, eax
add byte [ecx - 0x27], dh
out dx, eax
add byte [ecx - 0x26], cl
out dx, eax
add byte [eax], dh
fucomp st(7)
add byte [eax - 0x23], cl
out dx, eax
add byte [ebp + ebx*8 - 0x2216ff11], dl
out dx, eax
add byte [ebx - 0x1eff1023], dh
fucomp st(7)
add byte [edi - 0x22], al
out dx, eax
add byte [0xeb00efdd], ah
out dx, eax
add bl, ch
fucompi st(7)
add bl, dh
fucompi st(7)
add byte [edx - 0x26], al
out dx, eax
add dl, al
loope 0x448442
add byte [ebx - 0x1f], al
out dx, eax
add byte [edx], bl
out dx, eax
add bl, cl
in al, 0xef
add bl, al
in al, 0xef
out dx, eax
add byte [ebx - 0x15], dl
out dx, eax
add byte [ebx - 0x15], dl
out dx, eax
add byte [ebx - 0xcff1015], al
jmp 0x448462