Function at 0x427ab0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
test dword [0x87ed4c], 0xffffa000
jne 0x427ab0
test dword [0x87ed4c], 0xfffff000
jne 0x428340
test dword [0x87ed4c], 0xffffffff
jne 0x428b20
call fcn.007663a0
jmp fcn.00427a70
push ebp
mov ebp, esp
and esp, 0xfffffff0
push edi
push esi
push ebx
sub esp, 0x174
mov edi, eax
mov eax, 0x200
mov dword [esp + 0x160], edx
call fcn.0041ebd4
mov ebx, eax
test ebx, ebx
je 0x427b2e
lea edx, [ebx + 0xf]
and edx, 0xfffffff0
pxor xmm0, xmm0
xor eax, eax
movq qword [ebx], xmm0
mov dword [ebx + 8], eax
mov word [ebx + 0xc], ax
mov byte [ebx + 0xe], al
mov eax, 0x1e0
movq qword [ebx + 0x1f0], xmm0
movq qword [ebx + 0x1f8], xmm0
movaps xmmword [edx + 0x1e0], xmm0
movaps xmmword [edx + eax - 0x10], xmm0
movaps xmmword [edx + eax - 0x20], xmm0
movaps xmmword [edx + eax - 0x30], xmm0
movaps xmmword [edx + eax - 0x40], xmm0
movaps xmmword [edx + eax - 0x50], xmm0
sub eax, 0x50
jne 0x427b0e
mov dword [ebx], edi
lea eax, [edi + 7]
sar eax, 2
shr eax, 0x1d
lea esi, [edi + eax + 7]
sar esi, 3
inc esi
call fcn.0058d940
test eax, eax
jne 0x427b55
mov eax, esi
call fcn.0041ebd4
mov dword [esp + 0x4c], eax
jmp 0x427b5d
mov dword [esp + 0x4c], 0
call fcn.0058d940
test eax, eax
jne 0x427b76
mov eax, 0x200
call fcn.0041ebd4
mov dword [esp + 0x48], eax
jmp 0x427b7e
mov dword [esp + 0x48], 0
test ebx, ebx
je 0x428323
cmp dword [esp + 0x4c], 0
je 0x428323
cmp dword [esp + 0x48], 0
je 0x42806d
push esi
push 0
push dword [esp + 0x54]
call fcn.00766740
add esp, 0xc
xor eax, eax
mov edx, 1
call fcn.00429250
xor esi, esi
mov eax, 0x10101010
movd xmm0, eax
pshufd xmm1, xmm0, 0
mov eax, 0xd
movd xmm0, eax
movdqa xmmword [esp + 0x20], xmm1
mov edx, 0xe
pinsrb xmm0, edx, 1
mov ecx, 0xf
pinsrb xmm0, ecx, 2
mov edx, 0x10
pinsrb xmm0, edx, 3
mov dword [esp + 0x50], ebx
mov ecx, 0x11
pinsrb xmm0, ecx, 4
mov edx, 0x12
pinsrb xmm0, edx, 5
mov ecx, 0x13
pinsrb xmm0, ecx, 6
mov dword [esp + 0x158], edi
mov edx, 0x14
pinsrb xmm0, edx, 7
mov ecx, 0x15
pinsrb xmm0, ecx, 8
mov edx, 0x16
pinsrb xmm0, edx, 9
mov ecx, 0x17
pinsrb xmm0, ecx, 0xa
mov edx, 0x18
pinsrb xmm0, edx, 0xb
mov ecx, 0x19
pinsrb xmm0, ecx, 0xc
mov edx, 0x1a
pinsrb xmm0, edx, 0xd
mov ecx, 0x1b
pinsrb xmm0, ecx, 0xe
mov edx, 0x1c
pinsrb xmm0, edx, 0xf
movdqa xmmword [esp + 0x30], xmm0
mov eax, dword [esp + 0x160]
mov ebx, dword [eax + esi*4]
test ebx, ebx
je 0x428107
cmp ebx, 0x20
jae 0x427cd7
mov ecx, ebx
mov eax, 1
shl eax, cl
test al, 0x26
je 0x427cd7
mov ecx, dword [esp + 0x160]
mov edx, dword [ecx + esi*4 + 8]
lea eax, [edx - 1]
add edx, dword [ecx + esi*4 + 0xc]
mov dword [esp + 0x154], eax
mov dword [ecx + esi*4 + 8], edx
mov edx, 4
jmp 0x427ece
cmp dword [0x830384], 0
lea edi, [esp + 0x154]
je 0x427d0a
push 5
call dword [0x8303c0]
pop ecx
mov edx, eax
test edx, edx
je 0x427d0e
push edx
mov dword [esp + 0x44], edx
call dword [0x8303c8]
mov edx, dword [esp + 0x44]
add esp, 4
jmp 0x427d0e
xor eax, eax
xor edx, edx
xor eax, eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x1c], ebx
mov ebx, eax
mov dword [esp + 0x18], esi
movzx edx, byte [0x84f400]
test edx, edx
jne 0x427e3d
xor edx, edx
mov word [0x84f401], dx
call fcn.0058d940
test eax, eax
jne 0x427d7e
cmp dword [0x830384], 0
je 0x427d76
push 2
call dword [0x8303c0]
pop ecx
test eax, eax
je 0x427d76
push eax
mov dword [esp + 0x14], eax
call dword [0x8303c8]
mov eax, dword [esp + 0x14]
push eax
mov esi, dword [0x84f7f0]
call dword [0x8303d0]
add esp, 8
jmp 0x427d82
mov esi, dword [0x84f7f0]
jmp 0x427d82
xor eax, eax
xor esi, esi
lea edx, [esp + 0x54]
push edx
push pe_nt_image_headers32
push esi
call dword [esi + 0x38]
add esp, 0xc
xor edx, edx
mov byte [edx + 0x84f403], dl
inc edx
cmp edx, 0xd
jb 0x427d95
movdqa xmm0, xmmword [esp + 0x30]
movdqa xmm1, xmmword [esp + 0x20]
mov edx, 0xd
movdqa xmmword [edx + 0x84f403], xmm0
paddb xmm0, xmm1
add edx, 0x10
cmp edx, 0xfd
jb 0x427db2
mov byte [0x84f500], 0xfd
xor eax, eax
xor esi, esi
mov byte [0x84f501], 0xfe
mov byte [0x84f502], 0xff
mov dword [esp + 0x44], edi
nop dword [eax]
nop dword [eax]
movzx eax, byte [0x84f402]
movzx edi, byte [esi + 0x84f403]
add eax, edi
movzx edi, byte [esp + esi + 0x54]
add eax, edi
movzx eax, al
mov byte [0x84f402], al
movzx edx, byte [eax + 0x84f403]
movzx ecx, byte [esi + 0x84f403]
mov byte [eax + 0x84f403], cl
mov byte [esi + 0x84f403], dl
inc esi
cmp esi, 0x100
jb 0x427df0
mov edi, dword [esp + 0x44]
mov byte [0x84f400], 1
movzx eax, byte [0x84f401]
movzx edx, byte [0x84f402]
inc eax
mov byte [0x84f401], al
inc ebx
movzx esi, al
movzx eax, byte [esi + 0x84f403]
add edx, eax
movzx edx, dl
mov byte [0x84f402], dl
movzx ecx, byte [edx + 0x84f403]
mov byte [esi + 0x84f403], cl
movzx esi, byte [0x84f402]
mov byte [esi + 0x84f403], al
movzx ecx, byte [0x84f401]
movzx esi, byte [ecx + 0x84f403]
add esi, eax
and esi, 0xff
movzx edx, byte [esi + 0x84f403]
mov byte [edi], dl
inc edi
cmp ebx, 4
jb 0x427d1e
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
test edx, edx
je 0x427ec2
push edx
call dword [0x8303d0]
pop ecx
mov eax, dword [esp + 0x154]
mov edx, 2
mov edi, dword [esp + 0x160]
and eax, 0x7fffffff
mov ecx, dword [edi + esi*4 + 4]
dec ecx
mov dword [edi + esi*4 + 4], ecx
test ecx, ecx
mov ecx, 0
mov edi, dword [esp + 0x158]
cmovg edx, ecx
add esi, edx
xor edx, edx
idiv edi
mov dword [esp + 0x154], edx
lea edi, [edx + 1]
mov dword [esp + 0x15c], edi
sar edi, 3
test bl, 1
jne 0x4280ac
mov ecx, dword [esp + 0x15c]
mov ebx, dword [esp + 0x4c]
and ecx, 7
mov eax, 1
shl eax, cl
not eax
and byte [edi + ebx], al
mov ebx, dword [esp + 0x50]
mov edi, dword [ebx + 8]
test edi, edi
je 0x427f55
mov eax, edx
xor edx, edx
div edi
mov ebx, dword [ebx + eax*4 + 0xc]
test ebx, ebx
je 0x427c8c
mov edi, dword [ebx + 8]
test edi, edi
jne 0x427f3c
cmp dword [ebx], 0xfa0
ja 0x427f79
mov edi, edx
shr edi, 3
and edx, 7
mov ecx, edx
mov edx, 1
shl edx, cl
not edx
and byte [edi + ebx + 0xc], dl
jmp 0x427c8c
lea eax, [ebx + 0xc]
mov dword [esp + 0x14], eax
push 0x1f4
push eax
push dword [esp + 0x50]
mov dword [esp + 0x170], edx
call fcn.007666b0
mov edx, dword [esp + 0x170]
add esp, 0xc
mov ecx, dword [esp + 0x14]
lea edi, [ebx + 0x1b]
and edi, 0xfffffff0
pxor xmm0, xmm0
movq qword [ecx], xmm0
xor eax, eax
mov dword [ecx + 8], eax
mov word [ecx + 0xc], ax
mov byte [ecx + 0xe], al
movq qword [ecx + 0x1e0], xmm0
movq qword [ecx + 0x1e8], xmm0
mov dword [ecx + 0x1f0], eax
mov eax, 0x1e0
movaps xmmword [edi + eax - 0x10], xmm0
movaps xmmword [edi + eax - 0x20], xmm0
movaps xmmword [edi + eax - 0x30], xmm0
movaps xmmword [edi + eax - 0x40], xmm0
movaps xmmword [edi + eax - 0x50], xmm0
sub eax, 0x50
jne 0x427fd9
mov dword [ebx + 4], 0
xor ecx, ecx
inc edx
mov dword [esp + 0x164], edx
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x48]
mov edi, dword [esi + ecx*4]
test edi, edi
je 0x428054
cmp edi, dword [esp + 0x164]
je 0x428054
inc dword [ebx + 4]
dec edi
mov eax, 0x10624dd3
mul edi
shr edx, 3
imul eax, edx, 0x7d
sub edi, eax
lea edx, [ebx + edi*4]
cmp dword [edx + 0xc], 0
je 0x42804e
xor eax, eax
inc edi
cmp edi, 0x7d
cmovae edi, eax
lea edx, [ebx + edi*4]
cmp dword [edx + 0xc], 0
jne 0x42803e
mov eax, dword [esi + ecx*4]
mov dword [edx + 0xc], eax
inc ecx
cmp ecx, 0x7d
jb 0x428010
nop dword [eax]
nop dword [eax]
mov esi, dword [esp + 0x18]
jmp 0x427c8c
mov esi, 0xffffffff
mov eax, dword [esp + 0x4c]
call fcn.004c69c4
test ebx, ebx
je 0x42809d
cmp dword [ebx + 8], 0
je 0x428096
xor edi, edi
mov eax, dword [ebx + edi*4 + 0xc]
call fcn.00419e10
inc edi
cmp edi, 0x7d
jb 0x428087
mov eax, ebx
call fcn.004c69c4
mov eax, esi
add esp, 0x174
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x15c]
mov edx, dword [esp + 0x4c]
and ecx, 7
mov eax, 1
shl eax, cl
or byte [edi + edx], al
cmp ebx, 5
je 0x427c8c
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x15c]
call fcn.00429250
test eax, eax
je 0x427c8c
mov ebx, dword [esp + 0x50]
mov esi, 0xffffffff
mov eax, dword [esp + 0x48]
call fcn.004c69c4
cmp dword [esp + 0x4c], 0
jne 0x428072
jmp 0x42807b
mov ebx, dword [esp + 0x50]
mov edi, dword [esp + 0x158]
mov eax, dword [ebx]
mov dword [esp + 0x10], ebx
lea edx, [edi + 1]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], eax
cmp eax, edx
jae 0x42812e
xor eax, eax
jmp 0x4281d5
cmp edi, 0xffffffff
je 0x428127
mov esi, dword [ebx + 8]
mov ecx, edi
test esi, esi
je 0x42815d
mov edx, ecx
mov ecx, dword [esp + 0x10]
mov eax, edx
xor edx, edx
div esi
mov ecx, dword [ecx + eax*4 + 0xc]
test ecx, ecx
je 0x428127
mov esi, dword [ecx + 8]
test esi, esi
jne 0x428142
mov dword [esp + 0x10], ecx
mov ecx, edx
mov eax, dword [esp + 0x10]
cmp dword [eax], 0xfa0
jbe 0x4281bb
mov eax, 0x10624dd3
mul ecx
mov eax, dword [esp + 0x10]
shr edx, 3
imul esi, edx, 0x7d
neg esi
add esi, ecx
inc ecx
cmp dword [eax + esi*4 + 0xc], 0
je 0x4281b7
mov dword [esp + 0x158], edi
mov edi, eax
cmp ecx, dword [edi + esi*4 + 0xc]
je 0x428312
inc esi
mov eax, 0x10624dd3
mul esi
shr edx, 3
imul eax, edx, 0x7d
sub esi, eax
cmp dword [edi + esi*4 + 0xc], 0
jne 0x42818f
mov edi, dword [esp + 0x158]
xor eax, eax
jmp 0x4281d5
mov esi, ecx
shr esi, 3
and ecx, 7
xor edx, edx
movzx eax, byte [esi + eax + 0xc]
bt eax, ecx
mov eax, 1
cmovae eax, edx
mov esi, dword [esp + 0x18]
sub esi, edi
add esi, eax
mov dword [esp + 0x154], 1
test edi, edi
jle 0x4280ee
mov ecx, 1
mov dword [esp + 0x10], esi
mov dword [esp + 0x50], ebx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x158], edi
mov edi, dword [esp + 0x14]
cmp ecx, dword [esp + 0x18]
jbe 0x428219
xor eax, eax
jmp 0x4282b0
test ecx, ecx
je 0x428212
mov eax, dword [esp + 0x50]
lea esi, [ecx - 1]
mov eax, dword [eax + 8]
test eax, eax
je 0x42824c
mov ebx, eax
mov eax, esi
xor edx, edx
div ebx
mov edi, dword [edi + eax*4 + 0xc]
mov esi, edx
test edi, edi
je 0x42830a
mov ebx, dword [edi + 8]
test ebx, ebx
jne 0x42822d
mov ebx, dword [esp + 0x4c]
cmp dword [edi], 0xfa0
jbe 0x428296
mov eax, 0x10624dd3
mul esi
shr edx, 3
imul eax, edx, 0x7d
neg eax
add eax, esi
inc esi
cmp dword [edi + eax*4 + 0xc], 0
je 0x428292
mov ebx, edi
mov edi, eax
cmp esi, dword [ebx + edi*4 + 0xc]
je 0x4282f4
inc edi
mov eax, 0x10624dd3
mul edi
shr edx, 3
imul eax, edx, 0x7d
sub edi, eax
cmp dword [ebx + edi*4 + 0xc], 0
jne 0x428271
mov ebx, dword [esp + 0x4c]
xor eax, eax
jmp 0x4282b0
mov eax, esi
shr eax, 3
movzx edi, byte [eax + edi + 0xc]
and esi, 7
xor eax, eax
mov edx, 1
bt edi, esi
cmovb eax, edx
mov esi, ecx
sar esi, 3
movzx edi, byte [ebx + esi]
mov edx, ecx
and edx, 7
mov esi, 1
bt edi, edx
mov edx, 0
cmovb edx, esi
cmp edx, eax
jne 0x4282ff
inc ecx
cmp ecx, dword [esp + 0x158]
mov dword [esp + 0x154], ecx
jle 0x428208
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x50]
jmp 0x4280ee
mov ebx, dword [esp + 0x4c]
mov eax, 1
jmp 0x4282b0
mov ebx, dword [esp + 0x50]
mov esi, ecx
jmp 0x4280ee
mov ebx, dword [esp + 0x4c]
xor eax, eax
jmp 0x4282b0
mov edi, dword [esp + 0x158]
mov eax, 1
jmp 0x4281d5
mov esi, 0xffffffff
cmp dword [esp + 0x48], 0
jne 0x4280ee
jmp 0x4280f7
push ebp
mov ebp, esp
and esp, 0xfffffff0
push edi
push esi
push ebx
sub esp, 0x164
mov edi, eax
mov eax, 0x200
mov dword [esp + 0x150], edx
call fcn.0041ebd4
mov ebx, eax
test ebx, ebx
je 0x4283be
lea edx, [ebx + 0xf]
and edx, 0xfffffff0
pxor xmm0, xmm0
xor eax, eax
movq qword [ebx], xmm0
mov dword [ebx + 8], eax
mov word [ebx + 0xc], ax
mov byte [ebx + 0xe], al
mov eax, 0x1e0
movq qword [ebx + 0x1f0], xmm0
movq qword [ebx + 0x1f8], xmm0
movaps xmmword [edx + 0x1e0], xmm0
movaps xmmword [edx + eax - 0x10], xmm0
movaps xmmword [edx + eax - 0x20], xmm0
movaps xmmword [edx + eax - 0x30], xmm0
movaps xmmword [edx + eax - 0x40], xmm0
movaps xmmword [edx + eax - 0x50], xmm0
sub eax, 0x50
jne 0x42839e
mov dword [ebx], edi
lea eax, [edi + 7]
sar eax, 2
shr eax, 0x1d
lea esi, [edi + eax + 7]
sar esi, 3
inc esi
call fcn.0058d940
test eax, eax
jne 0x4283e5
mov eax, esi
call fcn.0041ebd4
mov dword [esp + 0x3c], eax
jmp 0x4283ed
mov dword [esp + 0x3c], 0
call fcn.0058d940
test eax, eax
jne 0x428406
mov eax, 0x200
call fcn.0041ebd4
mov dword [esp + 0x38], eax
jmp 0x42840e
mov dword [esp + 0x38], 0
test ebx, ebx
je 0x428b03
cmp dword [esp + 0x3c], 0
je 0x428b03
cmp dword [esp + 0x38], 0
je 0x42884d
push esi
push 0
push dword [esp + 0x44]
call fcn.00766740
add esp, 0xc
xor eax, eax
mov edx, 1
call fcn.00429250
xor esi, esi
mov eax, 0x10101010
movd xmm0, eax
pshufd xmm0, xmm0, 0
mov dword [esp + 0x40], ebx
mov dword [esp + 0x148], edi
movdqa xmmword [esp + 0x20], xmm0
mov eax, dword [esp + 0x150]
mov ebx, dword [eax + esi*4]
test ebx, ebx
je 0x4288e7
cmp ebx, 0x20
jae 0x4284b3
mov ecx, ebx
mov eax, 1
shl eax, cl
test al, 0x26
je 0x4284b3
mov ecx, dword [esp + 0x150]
mov edx, dword [ecx + esi*4 + 8]
lea eax, [edx - 1]
add edx, dword [ecx + esi*4 + 0xc]
mov dword [esp + 0x144], eax
mov dword [ecx + esi*4 + 8], edx
mov edx, 4
jmp 0x4286ae
cmp dword [0x830384], 0
lea edi, [esp + 0x144]
je 0x4284e6
push 5
call dword [0x8303c0]
pop ecx
mov edx, eax
test edx, edx
je 0x4284ea
push edx
mov dword [esp + 0x34], edx
call dword [0x8303c8]
mov edx, dword [esp + 0x34]
add esp, 4
jmp 0x4284ea
xor eax, eax
xor edx, edx
xor eax, eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x1c], ebx
mov ebx, eax
mov dword [esp + 0x18], esi
movzx edx, byte [0x84f400]
test edx, edx
jne 0x42861d
xor edx, edx
mov word [0x84f401], dx
call fcn.0058d940
test eax, eax
jne 0x42855a
cmp dword [0x830384], 0
je 0x428552
push 2
call dword [0x8303c0]
pop ecx
test eax, eax
je 0x428552
push eax
mov dword [esp + 0x14], eax
call dword [0x8303c8]
mov eax, dword [esp + 0x14]
push eax
mov esi, dword [0x84f7f0]
call dword [0x8303d0]
add esp, 8
jmp 0x42855e
mov esi, dword [0x84f7f0]
jmp 0x42855e
xor eax, eax
xor esi, esi
lea edx, [esp + 0x44]
push edx
push pe_nt_image_headers32
push esi
call dword [esi + 0x38]
add esp, 0xc
xor edx, edx
mov byte [edx + 0x84f403], dl
inc edx
cmp edx, 0xd
jb 0x428571
movdqa xmm0, xmmword [0x78c6d0]
mov edx, 0xd
movdqa xmm1, xmmword [esp + 0x20]
movdqa xmmword [edx + 0x84f403], xmm0
paddb xmm0, xmm1
add edx, 0x10
cmp edx, 0xfd
jb 0x428590
mov byte [0x84f500], 0xfd
xor eax, eax
xor esi, esi
mov byte [0x84f501], 0xfe
mov byte [0x84f502], 0xff
mov dword [esp + 0x34], edi
nop dword [eax + eax]
nop dword [eax]
movzx eax, byte [0x84f402]
movzx edi, byte [esi + 0x84f403]
add eax, edi
movzx edi, byte [esp + esi + 0x44]
add eax, edi
movzx eax, al
mov byte [0x84f402], al
movzx edx, byte [eax + 0x84f403]
movzx ecx, byte [esi + 0x84f403]
mov byte [eax + 0x84f403], cl
mov byte [esi + 0x84f403], dl
inc esi
cmp esi, 0x100
jb 0x4285d0
mov edi, dword [esp + 0x34]
mov byte [0x84f400], 1
movzx eax, byte [0x84f401]
movzx edx, byte [0x84f402]
inc eax
mov byte [0x84f401], al
inc ebx
movzx esi, al
movzx eax, byte [esi + 0x84f403]
add edx, eax
movzx edx, dl
mov byte [0x84f402], dl
movzx ecx, byte [edx + 0x84f403]
mov byte [esi + 0x84f403], cl
movzx esi, byte [0x84f402]
mov byte [esi + 0x84f403], al
movzx ecx, byte [0x84f401]
movzx esi, byte [ecx + 0x84f403]
add esi, eax
and esi, 0xff
movzx edx, byte [esi + 0x84f403]
mov byte [edi], dl
inc edi
cmp ebx, 4
jb 0x4284fa
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
test edx, edx
je 0x4286a2
push edx
call dword [0x8303d0]
pop ecx
mov eax, dword [esp + 0x144]
mov edx, 2
mov edi, dword [esp + 0x150]
and eax, 0x7fffffff
mov ecx, dword [edi + esi*4 + 4]
dec ecx
mov dword [edi + esi*4 + 4], ecx
test ecx, ecx
mov ecx, 0
mov edi, dword [esp + 0x148]
cmovg edx, ecx
add esi, edx
xor edx, edx
idiv edi
mov dword [esp + 0x144], edx
lea edi, [edx + 1]
mov dword [esp + 0x14c], edi
sar edi, 3
test bl, 1
jne 0x42888c
mov ecx, dword [esp + 0x14c]
mov ebx, dword [esp + 0x3c]
and ecx, 7
mov eax, 1
shl eax, cl
not eax
and byte [edi + ebx], al
mov ebx, dword [esp + 0x40]
mov edi, dword [ebx + 8]
test edi, edi
je 0x428735
mov eax, edx
xor edx, edx
div edi
mov ebx, dword [ebx + eax*4 + 0xc]
test ebx, ebx
je 0x428468
mov edi, dword [ebx + 8]
test edi, edi
jne 0x42871c
cmp dword [ebx], 0xfa0
ja 0x428759
mov edi, edx
shr edi, 3
and edx, 7
mov ecx, edx
mov edx, 1
shl edx, cl
not edx
and byte [edi + ebx + 0xc], dl
jmp 0x428468
lea eax, [ebx + 0xc]
mov dword [esp + 0x14], eax
push 0x1f4
push eax
push dword [esp + 0x40]
mov dword [esp + 0x160], edx
call fcn.007666b0
mov edx, dword [esp + 0x160]
add esp, 0xc
mov ecx, dword [esp + 0x14]
lea edi, [ebx + 0x1b]
and edi, 0xfffffff0
pxor xmm0, xmm0
movq qword [ecx], xmm0
xor eax, eax
mov dword [ecx + 8], eax
mov word [ecx + 0xc], ax
mov byte [ecx + 0xe], al
movq qword [ecx + 0x1e0], xmm0
movq qword [ecx + 0x1e8], xmm0
mov dword [ecx + 0x1f0], eax
mov eax, 0x1e0
movaps xmmword [edi + eax - 0x10], xmm0
movaps xmmword [edi + eax - 0x20], xmm0
movaps xmmword [edi + eax - 0x30], xmm0
movaps xmmword [edi + eax - 0x40], xmm0
movaps xmmword [edi + eax - 0x50], xmm0
sub eax, 0x50
jne 0x4287b9
mov dword [ebx + 4], 0
xor ecx, ecx
inc edx
mov dword [esp + 0x154], edx
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x38]
mov edi, dword [esi + ecx*4]
test edi, edi
je 0x428834
cmp edi, dword [esp + 0x154]
je 0x428834
inc dword [ebx + 4]
dec edi
mov eax, 0x10624dd3
mul edi
shr edx, 3
imul eax, edx, 0x7d
sub edi, eax
lea edx, [ebx + edi*4]
cmp dword [edx + 0xc], 0
je 0x42882e
xor eax, eax
inc edi
cmp edi, 0x7d
cmovae edi, eax
lea edx, [ebx + edi*4]
cmp dword [edx + 0xc], 0
jne 0x42881e
mov eax, dword [esi + ecx*4]
mov dword [edx + 0xc], eax
inc ecx
cmp ecx, 0x7d
jb 0x4287f0
nop dword [eax]
nop dword [eax]
mov esi, dword [esp + 0x18]
jmp 0x428468
mov esi, 0xffffffff
mov eax, dword [esp + 0x3c]
call fcn.004c69c4
test ebx, ebx
je 0x42887d
cmp dword [ebx + 8], 0
je 0x428876
xor edi, edi
mov eax, dword [ebx + edi*4 + 0xc]
call fcn.00419e10
inc edi
cmp edi, 0x7d
jb 0x428867
mov eax, ebx
call fcn.004c69c4
mov eax, esi
add esp, 0x164
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x14c]
mov edx, dword [esp + 0x3c]
and ecx, 7
mov eax, 1
shl eax, cl
or byte [edi + edx], al
cmp ebx, 5
je 0x428468
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x14c]
call fcn.00429250
test eax, eax
je 0x428468
mov ebx, dword [esp + 0x40]
mov esi, 0xffffffff
mov eax, dword [esp + 0x38]
call fcn.004c69c4
cmp dword [esp + 0x3c], 0
jne 0x428852
jmp 0x42885b
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x148]
mov eax, dword [ebx]
mov dword [esp + 0x10], ebx
lea edx, [edi + 1]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], eax
cmp eax, edx
jae 0x42890e
xor eax, eax
jmp 0x4289b5
cmp edi, 0xffffffff
je 0x428907
mov esi, dword [ebx + 8]
mov ecx, edi
test esi, esi
je 0x42893d
mov edx, ecx
mov ecx, dword [esp + 0x10]
mov eax, edx
xor edx, edx
div esi
mov ecx, dword [ecx + eax*4 + 0xc]
test ecx, ecx
je 0x428907
mov esi, dword [ecx + 8]
test esi, esi
jne 0x428922
mov dword [esp + 0x10], ecx
mov ecx, edx
mov eax, dword [esp + 0x10]
cmp dword [eax], 0xfa0
jbe 0x42899b
mov eax, 0x10624dd3
mul ecx
mov eax, dword [esp + 0x10]
shr edx, 3
imul esi, edx, 0x7d
neg esi
add esi, ecx
inc ecx
cmp dword [eax + esi*4 + 0xc], 0
je 0x428997
mov dword [esp + 0x148], edi
mov edi, eax
cmp ecx, dword [edi + esi*4 + 0xc]
je 0x428af2
inc esi
mov eax, 0x10624dd3
mul esi
shr edx, 3
imul eax, edx, 0x7d
sub esi, eax
cmp dword [edi + esi*4 + 0xc], 0
jne 0x42896f
mov edi, dword [esp + 0x148]
xor eax, eax
jmp 0x4289b5
mov esi, ecx
shr esi, 3
and ecx, 7
xor edx, edx
movzx eax, byte [esi + eax + 0xc]
bt eax, ecx
mov eax, 1
cmovae eax, edx
mov esi, dword [esp + 0x18]
sub esi, edi
add esi, eax
mov dword [esp + 0x144], 1
test edi, edi
jle 0x4288ce
mov ecx, 1
mov dword [esp + 0x10], esi
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x148], edi
mov edi, dword [esp + 0x14]
cmp ecx, dword [esp + 0x18]
jbe 0x4289f9
xor eax, eax
jmp 0x428a90
test ecx, ecx
je 0x4289f2
mov eax, dword [esp + 0x40]
lea esi, [ecx - 1]
mov eax, dword [eax + 8]
test eax, eax
je 0x428a2c
mov ebx, eax
mov eax, esi
xor edx, edx
div ebx
mov edi, dword [edi + eax*4 + 0xc]
mov esi, edx
test edi, edi
je 0x428aea
mov ebx, dword [edi + 8]
test ebx, ebx
jne 0x428a0d
mov ebx, dword [esp + 0x3c]
cmp dword [edi], 0xfa0
jbe 0x428a76
mov eax, 0x10624dd3
mul esi
shr edx, 3
imul eax, edx, 0x7d
neg eax
add eax, esi
inc esi
cmp dword [edi + eax*4 + 0xc], 0
je 0x428a72
mov ebx, edi
mov edi, eax
cmp esi, dword [ebx + edi*4 + 0xc]
je 0x428ad4
inc edi
mov eax, 0x10624dd3
mul edi
shr edx, 3
imul eax, edx, 0x7d
sub edi, eax
cmp dword [ebx + edi*4 + 0xc], 0
jne 0x428a51
mov ebx, dword [esp + 0x3c]
xor eax, eax
jmp 0x428a90
mov eax, esi
shr eax, 3
movzx edi, byte [eax + edi + 0xc]
and esi, 7
xor eax, eax
mov edx, 1
bt edi, esi
cmovb eax, edx
mov esi, ecx
sar esi, 3
movzx edi, byte [ebx + esi]
mov edx, ecx
and edx, 7
mov esi, 1
bt edi, edx
mov edx, 0
cmovb edx, esi
cmp edx, eax
jne 0x428adf
inc ecx
cmp ecx, dword [esp + 0x148]
mov dword [esp + 0x144], ecx
jle 0x4289e8
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x40]
jmp 0x4288ce
mov ebx, dword [esp + 0x3c]
mov eax, 1
jmp 0x428a90
mov ebx, dword [esp + 0x40]
mov esi, ecx
jmp 0x4288ce
mov ebx, dword [esp + 0x3c]
xor eax, eax
jmp 0x428a90
mov edi, dword [esp + 0x148]
mov eax, 1
jmp 0x4289b5
mov esi, 0xffffffff
cmp dword [esp + 0x38], 0
jne 0x4288ce
jmp 0x4288d7
push ebp
mov ebp, esp
and esp, 0xfffffff0
push edi
push esi
push ebx
sub esp, 0x144
mov dword [esp + 0x138], edx
mov esi, eax
mov eax, 0x200
call fcn.0041ebd4
mov ebx, eax
test ebx, ebx
je 0x428b5a
push 0x200
push 0
push ebx
call fcn.00766740
add esp, 0xc
mov dword [ebx], esi
lea eax, [esi + 7]
sar eax, 2
shr eax, 0x1d
lea edi, [esi + eax + 7]
sar edi, 3
inc edi
call fcn.0058d940
test eax, eax
jne 0x428b81
mov eax, edi
call fcn.0041ebd4
mov dword [esp + 0x24], eax
jmp 0x428b89
mov dword [esp + 0x24], 0
call fcn.0058d940
test eax, eax
jne 0x428ba5
mov eax, 0x200
call fcn.0041ebd4
mov dword [esp + 0x13c], eax
jmp 0x428bb0
mov dword [esp + 0x13c], 0
test ebx, ebx
je 0x429235
cmp dword [esp + 0x24], 0
je 0x429235
cmp dword [esp + 0x13c], 0
je 0x428f78
push edi
push 0
push dword [esp + 0x2c]
call fcn.00766740
add esp, 0xc
xor eax, eax
mov edx, 1
call fcn.00429250
xor edi, edi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x130], esi
mov eax, dword [esp + 0x138]
mov esi, dword [eax + edi*4]
test esi, esi
je 0x429015
cmp esi, 0x20
jae 0x428c44
mov ecx, esi
mov eax, 1
shl eax, cl
test al, 0x26
je 0x428c44
mov ecx, dword [esp + 0x138]
mov edx, dword [ecx + edi*4 + 8]
lea eax, [edx - 1]
mov dword [esp + 0x12c], eax
add edx, dword [ecx + edi*4 + 0xc]
mov dword [ecx + edi*4 + 8], edx
mov edx, 4
jmp 0x428deb
lea eax, [esp + 0x12c]
mov dword [esp + 0x20], eax
cmp dword [0x830384], 0
je 0x428c71
push 5
call dword [0x8303c0]
pop ecx
mov ebx, eax
test ebx, ebx
je 0x428c73
push ebx
call dword [0x8303c8]
pop ecx
jmp 0x428c73
xor ebx, ebx
mov eax, 3
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], edi
mov ebx, eax
mov esi, dword [esp + 0x20]
movzx edx, byte [0x84f400]
test edx, edx
jne 0x428d5a
xor edx, edx
mov word [0x84f401], dx
call fcn.0058d940
test eax, eax
jne 0x428cea
cmp dword [0x830384], 0
je 0x428ce2
push 2
call dword [0x8303c0]
pop ecx
test eax, eax
je 0x428ce2
push eax
mov dword [esp + 0x14], eax
call dword [0x8303c8]
mov eax, dword [esp + 0x14]
mov edi, dword [0x84f7f0]
push eax
call dword [0x8303d0]
add esp, 8
jmp 0x428cec
mov edi, dword [0x84f7f0]
jmp 0x428cec
xor edi, edi
lea edx, [esp + 0x2c]
push edx
push pe_nt_image_headers32
push edi
call dword [edi + 0x38]
add esp, 0xc
xor edx, edx
mov byte [edx + 0x84f403], dl
inc edx
cmp edx, 0x100
jl 0x428cff
xor edi, edi
movzx ecx, byte [0x84f402]
movzx edx, byte [edi + 0x84f403]
add ecx, edx
movzx edx, byte [esp + edi + 0x2c]
add ecx, edx
movzx ecx, cl
mov byte [0x84f402], cl
movzx eax, byte [ecx + 0x84f403]
movzx edx, byte [edi + 0x84f403]
mov byte [ecx + 0x84f403], dl
mov byte [edi + 0x84f403], al
inc edi
cmp edi, 0x100
jl 0x428d10
mov byte [0x84f400], 1
movzx eax, byte [0x84f401]
inc eax
mov byte [0x84f401], al
movzx edi, al
movzx eax, byte [edi + 0x84f403]
movzx edx, byte [0x84f402]
add edx, eax
movzx edx, dl
mov byte [0x84f402], dl
movzx ecx, byte [edx + 0x84f403]
mov byte [edi + 0x84f403], cl
movzx edi, byte [0x84f402]
mov byte [edi + 0x84f403], al
movzx ecx, byte [0x84f401]
movzx edi, byte [ecx + 0x84f403]
add edi, eax
and edi, 0xff
movzx edx, byte [edi + 0x84f403]
mov byte [esi], dl
inc esi
dec ebx
cmp ebx, 0xffffffff
jne 0x428c8a
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
test ebx, ebx
je 0x428ddf
push ebx
call dword [0x8303d0]
pop ecx
mov eax, dword [esp + 0x12c]
mov edx, 2
mov ecx, dword [esp + 0x138]
mov ebx, dword [ecx + edi*4 + 4]
dec ebx
mov dword [ecx + edi*4 + 4], ebx
test ebx, ebx
jle 0x428e04
mov edx, 0
add edi, edx
and eax, 0x7fffffff
xor edx, edx
mov ecx, dword [esp + 0x130]
idiv ecx
mov dword [esp + 0x140], edx
mov dword [esp + 0x12c], edx
lea edx, [edx + 1]
mov dword [esp + 0x134], edx
sar edx, 3
test esi, 1
jne 0x428fb7
mov ecx, dword [esp + 0x134]
and ecx, 7
mov eax, 1
shl eax, cl
not eax
mov ebx, dword [esp + 0x24]
and byte [edx + ebx], al
mov ebx, dword [esp + 0x28]
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x428e89
mov edx, dword [esp + 0x140]
mov eax, edx
xor edx, edx
div ecx
mov ebx, dword [ebx + eax*4 + 0xc]
test ebx, ebx
je 0x428bf9
mov ecx, dword [ebx + 8]
test ecx, ecx
jne 0x428e69
mov dword [esp + 0x140], edx
cmp dword [ebx], 0xfa0
ja 0x428eb2
mov ecx, dword [esp + 0x140]
mov esi, ecx
shr esi, 3
and ecx, 7
mov eax, 1
shl eax, cl
not eax
and byte [esi + ebx + 0xc], al
jmp 0x428bf9
lea eax, [ebx + 0xc]
mov edx, 0x1f4
mov esi, dword [eax + edx - 4]
mov ecx, dword [esp + 0x13c]
mov dword [ecx + edx - 4], esi
mov esi, dword [eax + edx - 8]
mov dword [ecx + edx - 8], esi
mov esi, dword [eax + edx - 0xc]
mov dword [ecx + edx - 0xc], esi
mov esi, dword [eax + edx - 0x10]
mov dword [ecx + edx - 0x10], esi
mov esi, dword [eax + edx - 0x14]
mov dword [ecx + edx - 0x14], esi
sub edx, 0x14
jne 0x428eba
push 0x1f4
push 0
push eax
call fcn.00766740
add esp, 0xc
mov dword [ebx + 4], 0
xor ecx, ecx
inc dword [esp + 0x140]
mov dword [esp + 0x14], edi
mov esi, dword [esp + 0x13c]
mov edi, dword [esi + ecx*4]
test edi, edi
je 0x428f5f
cmp edi, dword [esp + 0x140]
je 0x428f5f
dec edi
mov eax, 0x10624dd3
mul edi
shr edx, 3
imul eax, edx, 0x7d
sub edi, eax
inc dword [ebx + 4]
lea eax, [ebx + edi*4]
cmp dword [eax + 0xc], 0
je 0x428f59
inc edi
cmp edi, 0x7d
jb 0x428f50
mov edi, 0
lea eax, [ebx + edi*4]
cmp dword [eax + 0xc], 0
jne 0x428f45
mov edx, dword [esi + ecx*4]
mov dword [eax + 0xc], edx
inc ecx
cmp ecx, 0x7d
jb 0x428f19
lea esi, [esi]
lea edi, [edi]
mov edi, dword [esp + 0x14]
jmp 0x428bf9
mov edi, 0xffffffff
mov eax, dword [esp + 0x24]
call fcn.004c69c4
test ebx, ebx
je 0x428fa8
cmp dword [ebx + 8], 0
je 0x428fa1
xor esi, esi
mov eax, dword [ebx + esi*4 + 0xc]
call fcn.00419e10
inc esi
cmp esi, 0x7d
jb 0x428f92
mov eax, ebx
call fcn.004c69c4
mov eax, edi
add esp, 0x144
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x134]
and ecx, 7
mov eax, 1
shl eax, cl
mov ebx, dword [esp + 0x24]
or byte [edx + ebx], al
cmp esi, 5
je 0x428bf9
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x134]
call fcn.00429250
test eax, eax
je 0x428bf9
mov ebx, dword [esp + 0x28]
mov edi, 0xffffffff
mov eax, dword [esp + 0x13c]
call fcn.004c69c4
cmp dword [esp + 0x24], 0
jne 0x428f7d
jmp 0x428f86
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x130]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebx
mov eax, dword [ebx]
mov dword [esp + 0x18], eax
lea edx, [esi + 1]
cmp eax, edx
jae 0x42903c
xor eax, eax
jmp 0x4290ea
cmp esi, 0xffffffff
je 0x429035
mov ecx, esi
mov edi, dword [ebx + 8]
test edi, edi
je 0x42906b
mov edx, ecx
mov ecx, dword [esp + 0x10]
mov eax, edx
xor edx, edx
div edi
mov ecx, dword [ecx + eax*4 + 0xc]
test ecx, ecx
je 0x429035
mov edi, dword [ecx + 8]
test edi, edi
jne 0x429050
mov dword [esp + 0x10], ecx
mov ecx, edx
mov eax, dword [esp + 0x10]
cmp dword [eax], 0xfa0
jbe 0x4290c9
mov eax, 0x10624dd3
mul ecx
shr edx, 3
imul edi, edx, 0x7d
neg edi
add edi, ecx
inc ecx
mov eax, dword [esp + 0x10]
cmp dword [eax + edi*4 + 0xc], 0
je 0x4290c5
mov dword [esp + 0x130], esi
mov esi, eax
cmp ecx, dword [esi + edi*4 + 0xc]
je 0x429224
inc edi
mov eax, 0x10624dd3
mul edi
shr edx, 3
imul eax, edx, 0x7d
sub edi, eax
cmp dword [esi + edi*4 + 0xc], 0
jne 0x42909d
mov esi, dword [esp + 0x130]
xor eax, eax
jmp 0x4290ea
mov eax, ecx
shr eax, 3
mov edi, dword [esp + 0x10]
movzx edi, byte [eax + edi + 0xc]
and ecx, 7
mov edx, 1
shl edx, cl
and edi, edx
xor eax, eax
test edi, edi
setne al
mov edi, dword [esp + 0x18]
sub edi, esi
add edi, eax
mov dword [esp + 0x12c], 1
test esi, esi
jle 0x428ff9
mov eax, 1
mov dword [esp + 0x10], edi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x130], esi
mov edi, eax
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
cmp edi, dword [esp + 0x18]
jbe 0x429130
xor eax, eax
jmp 0x4291cc
test edi, edi
je 0x429129
lea ecx, [edi - 1]
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 8]
test eax, eax
je 0x429161
mov edx, ecx
mov ecx, esi
mov esi, eax
mov eax, edx
xor edx, edx
div esi
mov ecx, dword [ecx + eax*4 + 0xc]
test ecx, ecx
je 0x429129
mov esi, dword [ecx + 8]
test esi, esi
jne 0x429148
mov esi, ecx
mov ecx, edx
cmp dword [esi], 0xfa0
jbe 0x4291af
mov eax, 0x10624dd3
mul ecx
shr edx, 3
imul eax, edx, 0x7d
neg eax
add eax, ecx
inc ecx
cmp dword [esi + eax*4 + 0xc], 0
je 0x4291ab
mov ebx, esi
mov esi, eax
cmp ecx, dword [ebx + esi*4 + 0xc]
je 0x429210
inc esi
mov eax, 0x10624dd3
mul esi
shr edx, 3
imul eax, edx, 0x7d
sub esi, eax
cmp dword [ebx + esi*4 + 0xc], 0
jne 0x429186
mov ebx, dword [esp + 0x24]
xor eax, eax
jmp 0x4291cc
mov eax, ecx
shr eax, 3
movzx esi, byte [eax + esi + 0xc]
and ecx, 7
mov edx, 1
shl edx, cl
and esi, edx
xor eax, eax
test esi, esi
setne al
mov ecx, edi
sar ecx, 3
movzx esi, byte [ebx + ecx]
mov ecx, edi
and ecx, 7
mov edx, 1
shl edx, cl
and esi, edx
xor edx, edx
test esi, esi
setne dl
cmp edx, eax
jne 0x42921b
inc edi
mov dword [esp + 0x12c], edi
cmp edi, dword [esp + 0x130]
jle 0x42911f
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
jmp 0x428ff9
mov ebx, dword [esp + 0x24]
mov eax, 1
jmp 0x4291cc
mov ebx, dword [esp + 0x28]
jmp 0x428ff9
mov esi, dword [esp + 0x130]
mov eax, 1
jmp 0x4290ea
mov edi, 0xffffffff
cmp dword [esp + 0x13c], 0
jne 0x428ff9
jmp 0x429005