Function at 0x401e40
Capabilities:
Check for software breakpoints
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x9c
push ebx
push esi
push edi
mov esi, 0x26d7
mov ecx, 0x53cf
mov edi, 0xd4b
mov ebx, 0xa4
mov dword [ebp - 0x38], 0x63f2
mov dword [ebp - 0x88], 0xd48
mov dword [ebp - 0x98], 0xc9
mov dword [ebp - 0x90], 0x1492
mov dword [ebp - 8], 0x1ce9
mov dword [ebp - 4], 0xf2
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x40], 0x65e8
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x48], 0x909
mov dword [ebp - 0x30], 0x5b5e
mov dword [ebp - 0x50], 0x615
mov dword [ebp - 0x5c], 0x6052
mov dword [ebp - 0x34], 0x27ac
mov dword [ebp - 0x3c], 0x4ee2
mov dword [ebp - 0x44], 0x59d3
mov dword [ebp - 0x4c], 0xa7e
mov dword [ebp - 0x54], 0xc9
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0x5800
lea esp, [esp]
mov eax, 0xb40b40b5
imul esi
add edx, esi
sar edx, 6
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x401f00
cmp dword [ebp + 8], esi
je 0x402680
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x402680
mov eax, dword [ebp + 0x10]
lea esi, [eax + 4]
mov eax, dword [eax + 0x190]
xor eax, dword [esi]
cmp edx, eax
jl 0x402680
nop
mov eax, 0xa0a0a0a1
imul edi
add edx, edi
sar edx, 6
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x401f40
call fcn.00403530
mov edx, dword [ebp + 0x10]
mov ecx, 0xe5
mov dword [edx + 0x160], eax
mov eax, 0x7efb
lea ecx, [ecx]
cmp ebx, ecx
cmovg ebx, ecx
dec eax
jne 0x401f70
mov ecx, dword [esi]
mov ebx, edx
mov eax, 0x2bd6
xor dword [ebx + 0x274], ecx
mov edi, dword [ebx + 0x274]
mov dword [ebx + 0x194], esi
cdq
and edx, 0xf
add eax, edx
sar eax, 4
test eax, eax
jne 0x401f93
mov eax, dword [ebp + 0xc]
xor edx, edx
div edi
mov ecx, 0x5316
mov edx, 0xcc
imul edi, eax
mov dword [ebx + 0x1d8], eax
mov dword [ebx + 0x188], edi
mov eax, 0x1b
cmp eax, 0xcc
cmovg eax, edx
dec ecx
jne 0x401fc5
xor esi, esi
test edi, edi
mov edi, ebx
je 0x402030
mov ebx, dword [ebp + 8]
jmp 0x401fe0
mov eax, dword [edi + 0x194]
inc esi
mov al, byte [eax]
xor byte [esi + ebx - 1], al
movzx ecx, byte [esi + ebx - 1]
mov eax, dword [edi + 0x194]
mov dl, byte [eax + 1]
xor dl, cl
mov byte [esi + ebx - 1], dl
mov eax, dword [edi + 0x194]
mov cl, byte [eax + 2]
xor cl, dl
mov byte [esi + ebx - 1], cl
mov eax, dword [edi + 0x194]
mov al, byte [eax + 3]
xor al, cl
mov byte [esi + ebx - 1], al
cmp esi, dword [edi + 0x188]
jb 0x401fe0
jmp 0x402030
mov eax, 0x1b4e81b5
imul dword [ebp - 0x38]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x38], eax
jne 0x402030
mov ecx, 0x3839
lea esp, [esp]
mov eax, 0xb21642c9
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402050
mov eax, dword [edi + 0x274]
xor esi, esi
dec eax
je 0x4021cf
xor ebx, ebx
cmp ebx, 0x4374
jge 0x4020ad
mov edi, edi
inc ebx
mov eax, 0x55555556
imul ebx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, ebx
lea eax, [eax + eax*2]
sub ecx, eax
jne 0x40209c
add ebx, ebx
jmp 0x4020a5
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
add ebx, eax
cmp ebx, 0x4374
jl 0x402080
mov eax, dword [edi + 0x274]
dec eax
push eax
push 1
push edi
call fcn.00403340
mov edi, dword [ebp - 0x88]
add esp, 0xc
mov cl, al
test edi, edi
je 0x4020e9
lea esp, [esp]
mov eax, 0x22b63cbf
imul edi
sar edx, 3
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x4020d0
mov dword [ebp - 0x88], edi
mov edx, dword [ebp - 0x98]
mov eax, 0x448f
mov edi, 0xda
lea esp, [esp]
cmp edx, edi
cmovl edx, edi
dec eax
jne 0x402100
mov dword [ebp - 0x98], edx
mov edx, dword [ebp + 0x10]
cmp cl, byte [edx + eax + 8]
je 0x40211e
inc eax
cmp eax, esi
jbe 0x402111
jmp 0x402120
xor cl, cl
mov edi, dword [ebp - 0x90]
test edi, edi
je 0x402149
lea ebx, [ebx]
mov eax, 0x1948b0fd
imul edi
sar edx, 4
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x402130
mov dword [ebp - 0x90], edi
mov edi, dword [ebp - 8]
test edi, edi
je 0x402166
mov eax, 0x66666667
imul edi
sar edx, 2
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x402150
mov dword [ebp - 8], edi
mov eax, 0x144b
jmp 0x402170
dec eax
jne 0x402170
mov edx, dword [ebp - 4]
mov eax, 0x4d08
mov edi, 0x7b
cmp edx, edi
cmovl edx, edi
dec eax
jne 0x402180
mov edi, dword [ebp + 0x10]
mov dword [ebp - 4], edx
test cl, cl
je 0x402197
mov byte [edi + esi + 8], cl
inc esi
mov ecx, dword [ebp - 0x10]
cmp ecx, 0x5c18
jge 0x4021c0
inc ecx
mov eax, ecx
and eax, 0x80000007
jns 0x4021b1
dec eax
or eax, 0xfffffff8
inc eax
jne 0x4021b5
add ecx, ecx
cmp ecx, 0x5c18
jl 0x4021a2
mov dword [ebp - 0x10], ecx
mov eax, dword [edi + 0x274]
dec eax
cmp esi, eax
jb 0x402076
xorps xmm0, xmm0
mov dword [ebp - 0x84], 0x442b4c92
mov dword [ebp - 0x80], 0xffccd07
mov dword [ebp - 0x7c], 0x49a224c
movq qword [ebp - 0x78], xmm0
movq qword [ebp - 0x70], xmm0
mov word [ebp - 0x68], 0
mov ecx, 0x369b
nop
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402200
xor ebx, ebx
inc ebx
mov eax, 0x66666667
imul ebx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, ebx
lea eax, [eax + eax*4]
sub ecx, eax
jne 0x402232
inc ebx
cmp ebx, 0x5f11
jl 0x402217
lea ebx, [edi + 0x220]
mov dword [ebp - 0x2c], 0x51905b9
mov dword [ebp - 0x28], 0x9af7c465
movq xmm0, qword [ebp - 0x2c]
movq qword [ebx], xmm0
mov dword [ebp - 0x24], 0x22f581b
mov dword [ebp - 0x20], 0xb1767116
movq xmm0, qword [ebp - 0x24]
movq qword [ebx + 8], xmm0
mov dword [ebp - 0x1c], 0xa50d79e5
mov dword [ebp - 0x18], 0
movq xmm0, qword [ebp - 0x1c]
movq qword [ebx + 0x10], xmm0
mov dword [ebp - 8], ebx
mov byte [ebx + 0x18], 0
mov ecx, 0x3c9
mov eax, 0x97012e03
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402293
xor eax, eax
lea ebx, [ebx]
xor byte [ebp + eax - 0x84], 0xc7
inc eax
cmp eax, 0xc
jb 0x4022b0
mov eax, 0x7fd5
mov edx, 0xb6
mov ecx, 0x84
lea ecx, [ecx]
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x4022d0
xor ecx, ecx
mov dword [ebp - 4], ecx
cmp dword [edi + 0x274], ecx
jbe 0x40257f
mov ebx, dword [ebp + 0x10]
lea esp, [esp]
mov esi, dword [ebp - 0x40]
test esi, esi
je 0x402316
jmp 0x402300
mov eax, 0x27932b49
imul esi
sar edx, 5
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x402300
mov dword [ebp - 0x40], esi
movzx edi, byte [ebx + ecx + 8]
imul edi, dword [ebx + 0x1d8]
mov esi, dword [ebp - 0xc]
add edi, dword [ebp + 8]
cmp esi, 0x2e61
jge 0x402356
inc esi
mov eax, 0x66666667
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, esi
lea eax, [eax + eax*4]
sub ecx, eax
jne 0x40234b
inc esi
cmp esi, 0x2e61
jl 0x402330
mov dword [ebp - 0xc], esi
mov eax, dword [ebp - 0x58]
lea esp, [esp]
inc eax
cmp eax, 0x220c
jl 0x402360
mov ecx, dword [ebp - 0x48]
mov dword [ebx + 0x178], edi
movq xmm0, qword [edi]
mov bl, byte [edi + 0x18]
movq qword [ebp - 0x94], xmm0
movq xmm0, qword [edi + 8]
movq qword [ebp - 0x9c], xmm0
movq xmm0, qword [edi + 0x10]
mov dword [ebp - 0x58], eax
movq qword [ebp - 0x8c], xmm0
test ecx, ecx
je 0x4023b7
mov eax, 0x288df0cb
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4023a1
mov dword [ebp - 0x48], ecx
mov ecx, dword [ebp - 0x30]
test ecx, ecx
je 0x4023d6
mov edi, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4023c0
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x50]
test ecx, ecx
je 0x4023f6
lea ecx, [ecx]
mov eax, 0x6f74ae27
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4023e0
mov dword [ebp - 0x50], ecx
movq xmm0, qword [ebp - 0x84]
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x7c]
movq qword [edi], xmm0
mov dword [edi + 8], eax
test ecx, ecx
je 0x402428
nop
mov eax, 0xa57eb503
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402410
mov dword [ebp - 0x5c], ecx
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 0x178]
call eax
movq xmm0, qword [ebp - 0x94]
mov ecx, dword [ebp - 0x34]
movq qword [edi], xmm0
movq xmm0, qword [ebp - 0x9c]
movq qword [edi + 8], xmm0
movq xmm0, qword [ebp - 0x8c]
movq qword [edi + 0x10], xmm0
mov byte [edi + 0x18], bl
test ecx, ecx
je 0x402479
mov eax, 0x4bda12f7
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402463
mov dword [ebp - 0x34], ecx
mov ebx, dword [ebp + 0x10]
xor esi, esi
cmp dword [ebx + 0x1d8], esi
jbe 0x4024cd
mov eax, dword [ebx + 0x194]
inc esi
mov al, byte [eax + 3]
xor byte [esi + edi - 1], al
movzx ecx, byte [esi + edi - 1]
mov eax, dword [ebx + 0x194]
mov dl, byte [eax + 2]
xor dl, cl
mov byte [esi + edi - 1], dl
mov eax, dword [ebx + 0x194]
mov cl, byte [eax + 1]
xor cl, dl
mov byte [esi + edi - 1], cl
mov eax, dword [ebx + 0x194]
mov al, byte [eax]
xor al, cl
mov byte [esi + edi - 1], al
cmp esi, dword [ebx + 0x1d8]
jb 0x402486
mov ecx, dword [ebp - 0x3c]
test ecx, ecx
je 0x4024ea
mov eax, 0x78787879
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4024d4
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x44]
test ecx, ecx
je 0x402507
mov eax, 0x288df0cb
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4024f1
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x402526
mov edi, edi
mov eax, 0x3e0f83e1
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402510
mov dword [ebp - 0x4c], ecx
mov ecx, dword [ebp - 0x54]
mov eax, 0x5aba
mov edx, 0xbe
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x402533
mov esi, dword [ebp - 0x64]
mov dword [ebp - 0x54], ecx
cmp esi, 0x2750
jge 0x402566
mov ecx, 0x274f
sub ecx, esi
mov eax, 0xcccccccd
mul ecx
shr edx, 3
lea eax, [edx + edx*4]
lea esi, [esi + eax*2]
add esi, 0xa
mov dword [ebp - 0x64], esi
mov ecx, dword [ebp - 4]
inc ecx
mov dword [ebp - 4], ecx
cmp ecx, dword [ebx + 0x274]
jb 0x4022f0
mov ebx, dword [ebp - 8]
mov edi, dword [ebp + 0x10]
call fcn.00403530
mov esi, eax
mov dword [edi + 0x184], esi
xor eax, eax
mov edi, edi
inc eax
mov ecx, eax
and ecx, 0x80000001
jns 0x4025a0
dec ecx
or ecx, 0xfffffffe
inc ecx
jne 0x4025a5
add eax, 2
cmp eax, 0x7565
jl 0x402590
mov ecx, 0x932
mov eax, 0xac769185
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4025b1
lea ecx, [esi - 2]
push ecx
push dword [edi + 0x160]
call fcn.00401120
push 0x96446f3
push ebx
call fcn.00401cc0
mov eax, dword [ebp + 0xc]
cdq
and edx, 0xff
add esp, 0x10
lea esi, [edx + eax]
sar esi, 8
test esi, esi
je 0x402620
mov edi, dword [ebp + 8]
lea ebx, [ebx]
push ebx
push 0x100
push edi
call fcn.00403210
add esp, 0xc
add edi, 0x100
dec esi
jne 0x402600
jmp 0x402620
mov eax, 0x4c346405
imul dword [ebp - 0x60]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x60], eax
jne 0x402620
mov eax, 0xa85
mov edx, 0xe0
mov ecx, 0x12
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x402646
xor ebx, ebx
inc ebx
mov eax, 0x55555556
imul ebx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, ebx
lea eax, [eax + eax*2]
sub ecx, eax
jne 0x402669
inc ebx
cmp ebx, 0x1179
jl 0x402650
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x84210843
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402680
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret