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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x250
push ebx
push esi
push edi
mov dword [ebp - 0x44], ecx
lea edi, [ebp - 0x17c]
push 5
pop ecx
mov esi, str.argument_out_of_domain
mov dword [ebp - 0x64], edx
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x1c], 0xf781a770
mov dword [ebp - 0x18], 0xc2fcc7f9
mov dword [ebp - 0x14], 0xba66a503
movsw word es:[edi], word [esi]
mov dword [ebp - 0x10], 0x7e2f9a65
mov dword [ebp - 0xc], 0xddd7c67
mov dword [ebp - 8], 0x96f05533
movsb byte es:[edi], byte [esi]
xor esi, esi
cmp byte [str.DebugFilters], 0
je 0x417c50
call fcn.00414797
mov eax, dword [0x435730]
add eax, 0x84da105e
inc esi
mov dword [0x43574c], eax
cmp byte [esi + str.DebugFilters], 0
jne 0x417c32
call fcn.004153f9
mov ecx, dword [0x43574c]
cmp dword [ebp - 0x60], esi
jae 0x417c6b
lea eax, [ecx + 0x60b1229d]
mov dword [0x4356bc], eax
imul eax, ecx, 0x6fdc0d3e
xor edi, edi
mov dword [0x435730], eax
xor eax, eax
mov byte [ebp + eax - 0x164], al
inc eax
cmp eax, 0x100
jb 0x417c7a
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x164]
push 0x16
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x17c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x164]
mov byte [ebp + esi - 0x164], al
inc esi
mov byte [ebp + edi - 0x164], bl
cmp esi, 0x100
jb 0x417c8b
call fcn.00414797
mov al, byte [str.DebugFilters]
lea edi, [ebp - 0x54]
mov esi, 0x42c310
mov byte [ebp - 1], al
xor ebx, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
cmp al, byte [ebp - 0x54]
jne 0x417d02
test al, al
je 0x417d02
cmp byte [ebp + ebx - 0x54], 0
je 0x417d02
mov al, byte [ebx + 0x4356c1]
inc ebx
cmp al, byte [ebp + ebx - 0x54]
je 0x417cea
mov esi, str.DebugFilters
mov ecx, 0x42eda0
mov edx, esi
call fcn.004151f9
movzx eax, byte [ebp + ebx - 0x54]
movzx ecx, byte [ebx + str.DebugFilters]
sub ecx, eax
mov eax, dword [0x435730]
cmp ecx, 0x9d9
jae 0x417d48
push eax
mov edx, 0x430780
call fcn.00414ef8
mov ebx, dword [0x4356bc]
pop ecx
add ebx, 0x5c69a44b
jmp 0x417d60
mov edx, esi
mov ecx, str.timestamp
call fcn.004151f9
mov ebx, dword [0x43574c]
or ebx, 0x95e396f0
xor esi, esi
mov dword [ebp - 0x38], ebx
and dword [ebp - 0x3c], esi
xor edi, edi
imul eax, ebx, 0xb7c987b2
mov dword [0x4356bc], ebx
mov ebx, dword [ebp - 0x3c]
mov dword [0x43574c], eax
lea eax, [ebx + 1]
movzx ebx, al
mov cl, byte [ebp + ebx - 0x164]
movzx edx, cl
lea eax, [esi + edx]
movzx esi, al
mov al, byte [ebp + esi - 0x164]
mov byte [ebp + ebx - 0x164], al
mov byte [ebp + esi - 0x164], cl
movzx eax, byte [ebp + ebx - 0x164]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x164]
xor al, byte [ebp + edi - 0x1c]
mov byte [ebp + edi - 0x198], al
inc edi
cmp edi, 0x18
jb 0x417d7e
push dword [0x43574c]
mov edx, 0x42f1b0
mov byte [ebp - 0x180], 0
mov dword [ebp - 0x30], 0x5fa5da78
mov dword [ebp - 0x2c], 0x425d8da1
mov dword [ebp - 0x28], 0xf5e3bb66
mov dword [ebp - 0x24], 0x425b2086
mov dword [ebp - 0x20], 0xaa994290
mov dword [ebp - 0x1c], 0x8422f7fd
mov dword [ebp - 0x18], 0x12abe21f
mov dword [ebp - 0x14], 0x3ab99e1a
mov dword [ebp - 0x10], 0x79db1b8d
mov dword [ebp - 0xc], 0x8f61f933
mov dword [ebp - 8], 0x37ff34b5
call fcn.00414ef8
cmp byte [ebp - 1], 0
mov esi, str.DebugFilters
pop ecx
je 0x417e63
call fcn.004153f9
xor dword [0x43574c], 0x14bffdcd
inc esi
cmp byte [esi], 0
jne 0x417e3e
mov al, byte [str.DebugFilters]
mov byte [ebp - 1], al
mov eax, dword [0x4356bc]
mov dword [ebp - 0x38], eax
push 0xc
pop ecx
mov esi, 0x4307ac
lea edi, [ebp - 0x250]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
xor edi, edi
xor eax, eax
mov byte [ebp + eax - 0x164], al
inc eax
cmp eax, 0x100
jb 0x417e79
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x164]
push 0x31
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x250]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x164]
mov byte [ebp + esi - 0x164], al
inc esi
mov byte [ebp + edi - 0x164], bl
cmp esi, 0x100
jb 0x417e8a
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x164]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x164]
mov byte [ebp + edi - 0x164], al
mov byte [ebp + ebx - 0x164], cl
movzx eax, byte [ebp + edi - 0x164]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x164]
xor al, byte [ebp + esi - 0x30]
mov byte [ebp + esi - 0x21c], al
inc esi
cmp esi, 0x2c
jb 0x417ed0
mov esi, 0x42d658
mov byte [ebp - 0x1f0], 0
lea edi, [ebp - 0x58]
mov dword [ebp - 0x1c], 0x30c5dd4b
mov dword [ebp - 0x18], 0x7ef54eea
mov ebx, 0x100
mov dword [ebp - 0x14], 0xc97ed818
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x10], 0x18087ee3
mov dword [ebp - 0xc], 0xb725ec44
mov dword [ebp - 8], 0xa37d1ed1
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
xor edi, edi
xor eax, eax
mov byte [ebp + eax - 0x164], al
inc eax
cmp eax, ebx
jb 0x417f67
xor esi, esi
mov dl, byte [ebp + esi - 0x164]
mov eax, esi
and eax, 0xf
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x58]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x164]
mov byte [ebp + esi - 0x164], al
inc esi
mov byte [ebp + edi - 0x164], dl
cmp esi, ebx
jb 0x417f75
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x164]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x164]
mov byte [ebp + edi - 0x164], al
mov byte [ebp + ebx - 0x164], cl
movzx eax, byte [ebp + edi - 0x164]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x164]
xor al, byte [ebp + esi - 0x1c]
mov byte [ebp + esi - 0x1b4], al
inc esi
cmp esi, 0x18
jb 0x417fb0
mov esi, 0x42c254
mov byte [ebp - 0x19c], 0
lea edi, [ebp - 0x54]
mov dword [ebp - 0x1c], 0xe8535ab7
push 9
pop ecx
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x18], 0x57b9041f
mov dword [ebp - 0x14], 0x4bfe63a7
mov dword [ebp - 0x10], 0x65ea442
movsd dword es:[edi], dword [esi]
mov word [ebp - 0xc], 0x7d5d
mov byte [ebp - 0xa], cl
mov dword [ebp - 9], 0xf7222da9
movsw word es:[edi], word [esi]
xor edi, edi
mov byte [ebp - 5], 0xec
xor eax, eax
mov byte [ebp + eax - 0x164], al
inc eax
cmp eax, 0x100
jb 0x41804a
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x164]
mov eax, esi
div ecx
movzx ecx, bl
push 9
movzx eax, byte [ebp + edx - 0x54]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x164]
mov byte [ebp + esi - 0x164], al
inc esi
mov byte [ebp + edi - 0x164], bl
cmp esi, 0x100
jb 0x41805b
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x164]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x164]
mov byte [ebp + edi - 0x164], al
mov byte [ebp + ebx - 0x164], cl
movzx eax, byte [ebp + edi - 0x164]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x164]
xor al, byte [ebp + esi - 0x1c]
mov byte [ebp + esi - 0x1d0], al
inc esi
cmp esi, 0x18
jb 0x41809e
push 5
and dword [ebp - 0x34], 0
lea edi, [ebp - 0x17c]
pop ecx
mov esi, 0x430680
mov byte [ebp - 0x1b8], 0
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x1c], 0xede9413d
xor eax, eax
mov dword [ebp - 0x18], 0x5339aebc
mov dword [ebp - 0x14], 0xc6f8bad9
mov dword [ebp - 0x10], 0x2f18eca9
mov dword [ebp - 0xc], 0xddb5b75a
mov dword [ebp - 8], 0x9b0259bb
movsw word es:[edi], word [esi]
mov byte [ebp + eax - 0x164], al
inc eax
cmp eax, 0x100
jb 0x418137
mov al, byte [ebp - 1]
lea edi, [ebp - 0x58]
mov esi, 0x42cd68
xor ebx, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
cmp al, byte [ebp - 0x58]
jne 0x41817f
test al, al
je 0x41817f
cmp byte [ebp + ebx - 0x58], 0
je 0x41817f
mov ecx, 0x430560
call fcn.00414da4
mov al, byte [ebx + 0x4356c1]
inc ebx
cmp al, byte [ebp + ebx - 0x58]
je 0x41815d
movzx eax, byte [ebp + ebx - 0x58]
movzx ecx, byte [ebx + str.DebugFilters]
sub ecx, eax
cmp ecx, 0x1251
jae 0x4181ae
mov eax, dword [ebp - 0x38]
mov ecx, 0x4307e0
xor eax, 0x1914784e
mov dword [0x4356bc], eax
call fcn.00414da4
jmp 0x4181bd
mov eax, dword [0x435730]
or eax, 0xe3f8b5e6
mov dword [0x43574c], eax
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x164]
push 0x15
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x17c]
add eax, dword [ebp - 0x34]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 0x34], ecx
mov al, byte [ebp + ecx - 0x164]
mov byte [ebp + esi - 0x164], al
inc esi
mov byte [ebp + ecx - 0x164], bl
cmp esi, 0x100
jb 0x4181bf
mov dl, byte [ebp - 1]
xor esi, esi
xor ecx, ecx
xor ebx, ebx
lea eax, [ecx + 1]
movzx ecx, al
lea edi, [ebp - 0x54]
mov dword [ebp - 0x34], ecx
mov al, byte [ebp + ecx - 0x164]
mov byte [ebp - 1], al
movzx eax, al
mov dword [ebp - 0x40], eax
add eax, esi
mov esi, 0x430804
movzx eax, al
mov dword [ebp - 0x3c], eax
mov al, byte [ebp + eax - 0x164]
movsd dword es:[edi], dword [esi]
mov byte [ebp + ecx - 0x164], al
xor ecx, ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
cmp dl, byte [ebp - 0x54]
jne 0x418266
test dl, dl
je 0x418266
cmp byte [ebp + ecx - 0x54], 0
je 0x418266
mov dl, byte [ecx + 0x4356c1]
inc ecx
cmp dl, byte [ebp + ecx - 0x54]
je 0x41824e
movzx eax, byte [ebp + ecx - 0x54]
movzx esi, byte [ecx + str.DebugFilters]
sub esi, eax
call fcn.004153f9
cmp esi, 0x68c
jne 0x418292
imul eax, dword [0x4356bc], 0x34284821
mov dword [0x435730], eax
jmp 0x4182a1
imul eax, dword [0x43574c], 0x63cee310
mov dword [0x43574c], eax
mov esi, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x34]
mov al, byte [ebp - 1]
mov byte [ebp + esi - 0x164], al
movzx eax, byte [ebp + ecx - 0x164]
add eax, dword [ebp - 0x40]
movzx eax, al
mov al, byte [ebp + eax - 0x164]
xor al, byte [ebp + ebx - 0x1c]
mov byte [ebp + ebx - 0x1ec], al
inc ebx
cmp ebx, 0x18
jae 0x4182e2
mov dl, byte [str.DebugFilters]
jmp 0x41820c
mov ecx, 0xf000
mov byte [ebp - 0x1d4], 0
xor edi, edi
call fcn.0040a2a8
mov ebx, eax
mov ecx, 0x7800
mov dword [ebp - 0x60], ebx
call fcn.0040a2a8
mov ecx, 0x208
mov esi, eax
call fcn.0040a2a8
imul ecx, dword [0x435730], 0x7f4b66e
mov dword [ebp - 0x34], eax
mov dword [0x4356bc], ecx
lea ecx, [ebp - 0x198]
call fcn.0040b5df
lea ecx, [ebp - 0x21c]
mov dword [ebp - 0x3c], eax
call fcn.0040b628
lea ecx, [ebp - 0x1b4]
mov dword [ebp - 0x38], eax
call fcn.0040b628
lea ecx, [ebp - 0x1d0]
mov dword [ebp - 0x5c], eax
call fcn.0040b628
push dword [ebp - 0x5c]
lea edx, [ebp - 0x1ec]
mov dword [ebp - 0x40], eax
push dword [ebp - 0x38]
push dword [ebp - 0x34]
push 2
pop ecx
call fcn.0040a2e6
call eax
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x34]
push 0xf000
push ebx
call fcn.0041592b
add esp, 0x14
test eax, eax
je 0x4183fb
mov ecx, ebx
call fcn.0040b8f4
push eax
mov edx, ebx
mov ecx, esi
call fcn.0040b6ac
mov ebx, dword [ebp - 0x3c]
pop ecx
mov eax, dword [0x435730]
mov ecx, 0x400
add eax, 0x7abf95bb
mov dword [0x4356bc], eax
call fcn.0040a2a8
mov ecx, dword [ebp - 0x44]
mov edx, ebx
mov dword [ecx], eax
xor eax, eax
test edi, edi
mov ecx, esi
cmovne ecx, eax
call fcn.0040babc
mov ecx, eax
test ecx, ecx
je 0x4183f3
inc edi
call fcn.0040b8e6
push eax
mov eax, dword [ebp - 0x44]
push ecx
push dword [eax]
call fcn.0040b543
add dword [ebp - 0x44], 4
add esp, 0xc
cmp edi, 0x1e
jl 0x4183a1
mov eax, dword [ebp - 0x64]
mov ebx, dword [ebp - 0x60]
mov dword [eax], edi
mov edi, dword [ebp - 0x3c]
mov ecx, edi
call fcn.0040b8e6
push eax
push 0
push edi
call fcn.0040b587
mov ecx, dword [ebp - 0x38]
call fcn.0040b8e6
push eax
push 0
push ecx
call fcn.0040b587
mov ecx, dword [ebp - 0x5c]
call fcn.0040b8e6
push eax
push 0
push ecx
call fcn.0040b587
mov ecx, dword [ebp - 0x40]
call fcn.0040b8e6
push eax
push 0
push ecx
call fcn.0040b587
mov ecx, edi
call fcn.0040a2d2
mov eax, dword [0x43574c]
mov ecx, dword [ebp - 0x38]
xor eax, 0x642b4f16
mov dword [0x4356bc], eax
call fcn.0040a2d2
mov ecx, dword [ebp - 0x5c]
call fcn.0040a2d2
mov ecx, dword [ebp - 0x40]
call fcn.0040a2d2
push 0xf000
xor edi, edi
push edi
push ebx
call fcn.0040b587
add esp, 0x3c
test esi, esi
je 0x418493
push 0x7800
push edi
push esi
call fcn.0040b587
add esp, 0xc
push 0x208
push edi
mov edi, dword [ebp - 0x34]
push edi
call fcn.0040b587
add esp, 0xc
mov ecx, ebx
call fcn.0040a2d2
mov ecx, esi
call fcn.0040a2d2
mov ecx, edi
call fcn.0040a2d2
pop edi
pop esi
pop ebx
leave
ret