Function at 0xc57846
Capabilities:
Encode data using base64
Encrypt data using rc4 ksa
Execute anti-debugging instructions

Disassembly:
mov dword [esp + 4], 0xd282393f
lea esp, [esp + 0xc]
je 0xcd33a6
mov eax, 0x2c11b493
push eax
not dword [esp + eax*2 - 0x58236926]
mov eax, dword [ebp + ebx*4]
jmp 0xe0d941
jns 0xdf6518
dec ecx
sub esp, 4
inc ecx
mov ebx, dword [esp]
inc ecx
xor ebx, edx
inc ebx
inc ecx
mov ebx, 0x111bcbb3
dec edx
lea ebp, [ebx*4 + 0x4d147d8d]
rol ebx, 1
shr ebp, 0xa6
inc esp
movsx eax, ch
sbb ebx, 0x809ef294
inc ecx
movzx ecx, ax
call fcn.009b9c40
ja 0x9a21f4
jle 0xf37559
jmp edi
call fcn.00f2d60a
movsx edx, al
mov dword [esp + eax], ebp
ret 8
xor al, 0x1f
movzx ecx, word [esp]
shl dl, cl
dec al
mov dword [esp + ecx - 0x6ca6], 0xb73d992b
btc cx, cx
ror ecx, 0xbf
xor al, 0x31
neg word [esp + ecx*8 - 0x6ce60]
inc al
call fcn.00d0141b
call fcn.00cbcc02
mov ebx, 0x650fb522
movzx ebx, byte [ecx + ebx - 0x650fb522]
push 0xd12aad3d
sar word [esp], 0x8e
xor ebx, eax
call fcn.00f0ae7f
pop edx
inc ecx
xor ebx, ecx
add ebp, ecx
mov dword [esp + eax - 0x22], ebp
ret
mov ecx, 0x4eaa0138
xor eax, ebx
lea ecx, [ecx + ecx*2 + 0xc3624bf]
xor eax, 0xdd82b8b8
movzx edx, cl
neg edx
jge 0xee2378
sbb eax, 0x20e783d
ror eax, 3
ror dl, cl
inc eax
sal ecx, cl
sbb ecx, 0x98446ac
xor ebx, eax
push edx
add ebp, eax
pop ecx
mov eax, 0xd1b7e207
not ecx
jmp ebp
mov ebx, dword [ebx*4 + 0xc6231c]
shr eax, 8
xor eax, ebx
inc ecx
mov dword [esp + 4], 0xd2cc0ac
neg word [esp + 4]
push 0x9f2df9b2
xor eax, 0xdfa0d003
mov word [esp + 0xb], 0x8399
dec edx
lea esp, [esp + 0x10]
jne 0x9a9482
mov ecx, 0xe33a0a0d
xor cl, 0xa2
mov ebx, ecx
pop ebx
not eax
mov ecx, 0x908912bd
mov dword [edi], eax
movzx edx, cx
movsx eax, dl
not cx
lea ebp, [edx + ebp - 0x12c1]
mov edx, dword [ebp + edx*2 - 0x257a]
xor edx, ebx
neg ecx
cwde
lea edx, [edx + eax - 0x594c3c1e]
push eax
bt eax, ecx
xor edx, 0x3b79a3a
bswap ecx
xchg byte [esp], al
xchg dword [esp], eax
not edx
and ecx, dword [esp]
lea edx, [edx + ecx - 0x4492599a]
jp 0xd9e107
neg dword [esp + 4]
jnp 0xdcbdca
add dl, 0xb4
not dl
not eax
neg eax
adc dl, 0xa6
neg ax
jno 0xe46c1e
xor dl, 0xbf
sar dword [esp + eax - 0x4f875594], 0x95
sbb dl, 0xa
sub dword [esp + eax - 0x4f875591], 0x8593e203
neg dl
add dl, 0x2a
lea ecx, [eax + eax*2 - 0x535f237f]
pop ecx
cbw
xor bl, dl
lea edx, [esp + edx + 8]
shl al, 0xa6
shr cx, cl
mov eax, dword [edx + eax - 0x4f87ff40]
mov dword [ecx + ebp - 0x4f870005], eax
and ecx, 0xc4bde586
adc dword [esp + ecx - 0x44850003], 0x33394415
mov edx, dword [esi + ecx - 0x44850002]
call fcn.00ef23fa
mov edx, 0x57a118b9
call fcn.00cecf38
btr eax, eax
cdq
xor ecx, ebx
and edx, dword [esp + eax - 0x17fffff8]
inc eax
neg eax
neg ecx
rol ecx, 2
push edx
sal ax, 0x88
bswap ecx
pop edx
rol ecx, 2
xor ebx, ecx
mov dword [ebp + edx - 6], ecx
lea ebp, [edx + ebp - 6]
pop edx
pop eax
pop edx
jmp fcn.00ec195b
rol edx, 0xae
xor bl, al
and dl, 0x1e
adc eax, esp
sal edx, 0xeb
sar edx, 6
bts edx, edx
mov byte [eax], cl
mov ecx, edx
sbb ecx, ecx
or ecx, dword [edi + ecx + 1]
movzx eax, dx
call fcn.00e4f0a3
mov eax, dword [ebp]
push 0xbd18109f
lea esp, [esp + 4]
call eax
mov edi, 0x5a29ca0b
lea esi, [edi + edi*2 + 0x60320920]
mov edx, esi
mov ebp, dword [ebp + edx - 0x6eaf6745]
shr edx, 9
inc esi
imul edi, edx
mov dword [esi + ebp - 0x6eaf6742], eax
mov eax, esi
pop ebx
pop edi
pop esi
mov ecx, dword [esi + edx*4 - 0xdd5ecc]
lea esi, [esi + edx*2 - 0x6eaf62]
bt edx, eax
bt edx, edx
not edx
xor ecx, ebx
imul eax
xor ecx, 0x258c6215
dec edx
not ecx
dec ecx
neg ecx
or eax, eax
cwde
xor ebx, ecx
mul al
adc edi, ecx
lea edx, [eax*8 + 0x6bb946bc]
ror eax, 0xcb
adc dl, 0xb4
jmp edi
push 0xfd8eac2b
add eax, edx
neg dword [esp]
add dword [esp], 0x5e881336
mov dword [ebp - 4], eax
test ebx, ebx
mov word [esp], 0xc729
lea esp, [esp + 4]
je 0xce3134
mov eax, 0x568abdbe
mov eax, dword [ebp + ebx*4]
jmp 0xddc391
dec ebx
jne 0x927dd5
jmp 0xca745c
dec ecx
neg dx
neg al
ror ecx, 3
call fcn.00d94558
mov eax, 0x25b5d421
mov edx, 0x74bb911f
sal dl, 0xe7
mov eax, dword [edi + eax - 0x25b5d421]
mov edx, dword [edi + edx - 0x74bb917c]
mov ecx, 0x3ca211a1
or eax, edx
not eax
call fcn.00df41a6
adc ax, 0xda2b
xor edx, ebx
not edx
shl cl, 0xe1
lea edx, [edx + ecx*2 - 0x2e117cfc]
xor al, cl
setg al
ror edx, 2
bswap edx
add cl, 0x1b
add al, ch
xor ebx, edx
bswap eax
add ebp, edx
lea edx, [ecx*4 - 0x6db52ec]
sar cl, 0xc6
lea ecx, [edx*4 - 0x1d50ebcb]
jmp ebp
mov eax, dword [ebp]
call eax
mov edx, 0x4928441e
lea ebx, [edx*8 + 0x11a41d91]
xadd dl, dh
mov ebp, dword [ebp + ebx - 0x5ae63e85]
xchg ebx, edx
je 0xe225cd
or dl, dl
mov dword [ebp + ebx - 0x49281e62], eax
bt ebx, edx
lea ecx, [ebx + ebx*4 - 0x2eaed4f]
bswap edx
mov edi, ebp
lea esi, [ebx*8 + 0x3f3ccb18]
bts edx, ecx
lea eax, [ecx + esi + 0x713a9e0f]
pop ebx
xadd edx, esi
lea ebp, [ecx + edx*4 + 0xa227830]
shr esi, cl
pop ebp
mul si
jno 0xed73b9
movsx edx, al
ror ecx, 2
pop edx
not edx
pop eax
lea ecx, [ecx + edx + 0xa3d072f]
bswap eax
ror ecx, 2
xadd eax, edx
sar edx, 0x14
lea ecx, [ecx + edx - 0x41663032]
add edx, edx
bt dx, ax
mul edx
rol ecx, 1
dec dx
bt dx, ax
xor ebx, ecx
dec eax
add ebp, ecx
movsx ecx, dx
bts ecx, ecx
movzx eax, byte [edi + ecx - 0x802a97]
lea edi, [edi + ecx*4 - 0x200aa5b]
not ecx
xor al, bl
neg ecx
sbb al, 0x8f
imul edx, ecx
not al
adc al, 0xad
lea edx, [edx + ecx*4 + 0x2910d93a]
imul edx, ecx
neg al
dec al
inc ecx
shl edx, 0xb2
xadd dx, cx
xor al, 0x88
sub dl, 0x9f
xadd ecx, edx
dec al
xadd dl, cl
rol al, 1
bswap edx
xor bl, al
sar ecx, 0x44
adc eax, esp
bt cx, 0x88
sub cx, 0x3723
mov dx, word [eax + ecx*4 - 0x3532df4]
movsx eax, cl
call fcn.009387c8
sysenter
call fcn.00dff7ba
mov edx, dword [esi]
mov ecx, 0x512e2b89
lea esi, [esi + ecx - 0x512e2b85]
movsx eax, cx
imul ax, cx
xor edx, ebx
not al
xor edx, 0x321ee635
lea eax, [ecx + eax*4 - 0x3771e1e7]
dec edx
lea eax, [ecx + ecx*8 + 0x7bb83f0f]
sub ecx, eax
sar ax, cl
ror edx, 2
lea edx, [edx + eax + 0x1b471f5b]
not edx
xor ebx, edx
or eax, ecx
adc edi, edx
mov ax, word [ebp]
movzx edx, cl
bts cx, 0x36
adc dl, dl
mov dx, word [ebp + edx - 0x50]
sub cl, 0xac
mov cl, byte [ebp + 4]
jg 0x9398cb
mov edx, 0x35185738
mov eax, dword [esi + edx*2 - 0x6a30ae70]
mov cl, byte [esi + edx*2 - 0x6a30ae6c]
sal eax, cl
movzx ecx, dl
mov dword [esi + edx*2 - 0x6a30ae6e], eax
mov ecx, dword [esi + ecx*2 - 0x6e]
sar dl, 0x61
mov eax, 0x47969680
lea esi, [esi + edx - 0x35185716]
sub eax, eax
bts eax, edx
or edx, eax
movzx eax, byte [edi + edx - 0x3518571c]
sbb dx, dx
xor al, bl
imul dx, dx
inc al
neg al
shl dl, 0xa5
not al
not dx
sal dx, 0xa6
ror dx, 0x63
sbb al, 0xb5
push edx
xor bl, al
xor dl, dh
setle dl
bts edx, edx
lea eax, [esp + eax + 4]
neg dl
ja 0xda9b0a
mov dword [edx + eax - 0x35181ffd], ecx
lea ecx, [edx - 0x7a45a252]
mov ecx, dword [edi + edx*2 - 0x6a303ff9]
lea edi, [edi + edx - 0x35181ff8]
xor dl, 0x93
xor ecx, ebx
movsx eax, dl
xor ecx, 0xb19cf4af
and ax, 0x1623
xchg word [esp + edx*2 - 0x6a303edb], dx
inc ecx
ror dl, 0x47
push edx
sar dword [esp + edx - 0x3518183b], 0x93
not ecx
cwde
jp 0x9b9a1d
rol eax, 0x52
mov ebx, edx
neg ax
mov edx, ebx
bswap eax
dec al
sal edx, 2
rol eax, 0xaa
sbb eax, eax
mov eax, ebp
jbe 0xca7a8f
dec ecx
sub esp, 4
mov edx, 0x3cadc0a6
mov ecx, 0x8e11ac0a
inc ecx
mov edi, dword [esp + edx*2 - 0x795b814c]
dec eax
inc ecx
inc ecx
xor edi, edx
sub edi, 0xc82a4a1a
mov ebp, ecx
inc esp
movzx eax, cl
inc esp
movsx esi, cl
rol edi, 3
movzx ebx, bp
lea edi, [edi + edx*2 + 0x32a73160]
rol edi, 1
dec edi
xor edi, 0xfd291c92
dec eax
lea eax, [ebx + ebx*4 + 0x82bc101]
rol edi, 1
inc ecx
xadd dh, ch
inc ecx
push edx
inc ecx
ror eax, cl
inc esp
movzx ebx, dl
inc ebp
movzx ebp, dh
inc edx
xor dword [esp + eax - 0x1600000], edi
inc esp
movsx edx, ch
inc ecx
pop edx
dec eax
arpl di, di
inc ecx
mul ebx
dec esp
add ecx, edi
dec ecx
imul ebx
dec eax
mov edi, dword [esi + edx*4]
dec ebp
lea edi, [esi + ebp*2 + 0x2f9b0e]
dec esp
mov eax, dword [esi + edx*2 + 8]
mov cl, byte [esi + edx*4 + 0x10]
inc ecx
inc ebx
dec ecx
neg esi
dec eax
lea esi, [esi + edx*4 + 0xa]
shl dl, 0x44
dec edx
lea eax, [ebx + ebx*2 + 0x79385126]
inc eax
idiv ch
dec esp
shld edi, eax, cl
sal dx, 0xb
dec eax
mov dword [esi + edx], edi
dec ecx
or edx, ecx
jmp edx
neg ecx
movzx ax, byte [edx]
not cl
jl 0xe34f10
pop ecx
xor eax, 0xa632b8b7
xor edx, 0xaaa20d34
inc eax
xchg ecx, eax
rol edx, 1
xor ecx, eax
lea edx, [ecx + edx + 0xe0b4353]
bt eax, 0xb5
call fcn.009adf33
mov edx, dword [edi]
mov eax, 0x42ad1ab5
movsx ecx, al
mov ecx, dword [eax + edi - 0x42ad1ab1]
div al
or eax, 0xec992591
sub ax, ax
adc edi, 8
sar ax, 0x2f
lea eax, [eax*2 - 0x6659e242]
sete al
mov dword [edx + eax - 0x77201d01], ecx
lea esi, [esi + eax - 0x77201d05]
mov eax, dword [esi + eax - 0x77201d01]
jp 0xc4efe8
mov edx, dword [esi]
mov ecx, 0x690761b7
jmp 0xd966ce
xor edx, 0xd38585a8
xor al, ah
xor ebx, edx
neg dword [esp + 6]
call fcn.00f17679
inc ecx
mov ebx, 0xf6040902
dec ecx
sub esp, 4
inc ecx
movzx eax, bl
inc edx
mov edi, dword [eax - 2]
movzx ebp, ax
dec eax
lea edx, [ebp + ebp - 0x7b63cbc1]
inc ecx
xor edi, edx
inc ecx
idiv bl
dec eax
cwde
xor edi, 0xf89d50a
inc ecx
bts ebx, eax
dec esp
lea esi, [eax + edx*2 - 0x4b5eecde]
inc ebp
movsx eax, si
not edi
call fcn.00f0e468
inc ecx
pop esi
pop eax
jp fcn.00d1a075
mov ecx, dword [ebp]
mov eax, 0x41297b90
btr eax, 0xd
movzx edx, byte [esi + eax - 0x41295b90]
ror eax, 0x1d
xor eax, eax
cwde
xor dl, bl
xchg ah, al
ror eax, 0xcf
add eax, 0x9899f020
xor dl, 0xb3
bts ax, 0xa6
rol al, 1
sbb dl, 0xb
xor dl, 0xa7
inc dl
sal eax, 0x26
xor eax, eax
dec al
ror dl, 1
sub dl, al
push eax
xor dl, al
sub dl, al
inc ax
xadd dword [esp + eax - 0x100], eax
xor dl, 0xab
pop eax
or al, ah
ror eax, 0xb7
dec dl
lea eax, [eax - 0x1ff2b1fa]
bt ax, ax
xor dl, 0xb
sal al, 0x21
sbb dl, 0xa6
rol dl, 1
sub ax, ax
xor bl, dl
sub eax, 0x908933ab
push eax
xchg ah, al
lea edx, [esp + edx + 4]
push eax
mov dword [edx + eax - 0x4f8755cc], ecx
movzx edx, byte [esi + eax - 0x4f8755cb]
push eax
xor dl, bl
sub dl, 0xac
xor al, byte [esp + eax - 0x4f8755c4]
ja 0xc91efd
movzx cx, byte [edi]
mov edx, 0x83bdb3d
bts edx, 0x32
mov dl, byte [edi + edx*2 - 0x107fb678]
not cl
mov eax, 0x4a3da527
sar al, 0x66
not dl
and eax, eax
or cl, dl
mov word [eax + edi - 0x4a3da4fe], cx
cwde
movzx ecx, al
lea ecx, [esp + ecx*8 + 0x40]
movzx ax, byte [ecx]
mov word [edi], ax
mov eax, 0x6c254413
mov eax, dword [esi + eax - 0x6c254417]
mov edx, 0xeaa3cc1b
bt edx, edx
xor eax, ebx
mov ecx, edx
lea edx, [edx + edx*4 - 0x30d9885f]
neg eax
call fcn.00e5bfbd
test ebx, ebx
jmp 0x927dc3
push 0xa264036
call fcn.00ce3125
xor dl, bl
jmp 0xc62305
call fcn.00c786a5
add al, byte [eax + esi + 5]
movzx edx, cx
sar dl, 0x42
lea esi, [esi + ecx - 0x2c37f801]
or cl, ch
imul cx, dx
xor al, bl
inc cl
dec cx
sub al, 0x8f
or edx, 0xe7bfb70e
call fcn.00f0caa8
sbb ebp, 6
sal cx, 0xee
ror ax, 0x85
xor dl, bl
or eax, eax
ror dl, 1
btc ax, 0x93
shl eax, 0xdc
setp cl
neg dl
sal cl, cl
inc ax
ror dl, 1
xor ax, cx
jp 0x9a1757
and dword [esp], 0x779f3514
mov dword [esp], eax
jnp 0xcd339f
jb 0x9a00ba
outsd dx, dword [esi]
xor dl, ah
and ah, bh
aam 9
loope 0xe225dc
aam 0x89
int3
adc esi, 1
mov edx, 0x6205dd09
mov word [esi + edx - 0x6205dd09], ax
mov ecx, dword [edi + edx - 0x6205dd09]
lea eax, [edx*8 - 0x6bf82344]
lea edi, [edi + edx - 0x6205dd05]
sal ax, 0x21
dec ax
not eax
xor ecx, ebx
lea eax, [edx*2 + 0x7d99e695]
jmp 0xce0e4a
jmp dword [esi + 0x13]
adc ax, ax
xor dl, 0
sar ax, 0x6a
shr ax, 0xab
xor bl, dl
push esi
neg ax
push ebp
and eax, eax
push eax
mov dword [esp + eax*2 - 0x1ffc2], ebx
lea ebx, [eax + eax + 0x14072891]
lea ebx, [ebx + ebx - 0x5ade2341]
mov ebp, edi
sal eax, 0x81
jno 0xd08a93
stosd dword es:[edi], eax
jnp 0xe46c1d
pop ebx
stc
lodsb al, byte [esi]
mov byte [edx - 0x6d], ah
iretd
xor ax, ax
adc edx, 0x214ce19
jmp ebp
pop esi
jae 0xe7e565
lea esi, [esi + edx - 0x3d22]
not edx
pop eax
movzx eax, byte [edi + eax - 0x4e0f3d26]
add dl, dh
xor al, bl
neg dl
sbb al, 0x34
xor edx, 0x9a135ba5
rol dl, 0xe1
ror al, 1
shl edx, 0x50
inc al
add dl, 0x21
neg dl
xor al, 0xa3
jmp 0xca332e
inc ecx
rol dl, 0x83
lea edx, [eax + edx*8 + 0x9aff8ab]
adc edx, 0xc9868580
ror ecx, 3
sar eax, 0x8d
xor ebx, ecx
add ebp, ecx
ror dx, 0xad
lea esi, [esi + edx - 0x16e613dd]
shl eax, 0x21
movzx edx, byte [esi + edx - 0x16e613dc]
shl al, 0xe3
ror ax, 0x47
jns 0xdf63bc
sysenter
push ebx
push edi
pushfd
mov ebx, 0x4b3eba3e
mov ebx, dword [esp + ebx - 0x4b3eba36]
mov dword [esp + 8], 0x6fe98c88
push dword [esp]
popfd
lea esp, [esp + 8]
mov ah, 0xc7
inc esp
and al, 8
mov byte [ecx + ebp*8 + 0x2474ff6f], cl
add byte [ebp + 0x824648d], bl
call fcn.00c63a89
nop
and dword [edi - 0x2e6b5b0e], 0xffffffe6
mov esp, 0xdaa933f2
leave
stosb byte es:[edi], al
and eax, ebx
nop
xor eax, 0xd3241c0d
xchg byte [esi + 0xd], bh
in eax, dx
loope 0xee23c6
push esp
sbb ebp, ebx
dec dword [ebp + esi + 0x55]
insd dword es:[edi], dx
loope 0xee23ea
dec esp
xor eax, 0xd3c57355
dec esp
xor eax, 0x9b8b0d55
retf
btr edx, 0x1c
xor eax, 0xdc297fbb
add dword [esp + 8], ecx
dec dx
setge dl
dec eax
sal cl, 0xa1
bswap eax
bt ecx, ecx
cmovae ecx, dword [esp + 8]
sar ecx, cl
not eax
add dl, 0xa8
or edx, dword [esp + 3]
lea eax, [ecx + eax - 0x60ea1773]
sal edx, cl
sar edx, 0x1e
shr cx, 0xcc
xor eax, 0x379f4431
xor ecx, 0x9b2b0889
xor ebx, eax
or byte [esp + ecx - 0x64d4087f], 0x95
adc edx, 0x2399f992
mov byte [esp + edx - 0x2399f98a], 0xa
adc edi, eax
and dword [esp + edx - 0x2399f98a], 0x6302412b
mov dword [esp + ecx - 0x64d40886], edi
ret 8