Function at 0x401da3
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
push ebx
push esi
push edi
push 6
mov dword [ebp - 0x10], 0xa5a5
mov word [ebp - 0x30], 0xa
xor esi, esi
pop ebx
mov eax, esi
xor ecx, ecx
sub eax, ecx
je 0x40177c
dec eax
je 0x401771
dec eax
je 0x401766
dec eax
je 0x40175f
dec eax
je 0x401759
dec eax
jne 0x40178f
inc word [ebp - 0x3c]
jne 0x401757
je 0x401757
and ebp, ebx
mov word ss:[ebp - 0x2c], cx
jmp 0x40178f
mov word [ebp - 0x2c], cx
jmp 0x40178f
or word [ebp - 0x32], 0xffff
jmp 0x40178f
mov word [ebp - 0x42], cx
jb 0x40176f
jae 0x40176f
and ch, bl
push ds
jmp 0x40178f
mov word [ebp - 0x2a], cx
jbe 0x40177a
ja 0x40177a
and al, 0xeb
adc ebp, dword [edx + 3]
jmp 0x40178f
push 3
lea ecx, [ebp - 0x48]
pop edx
xor eax, eax
mov edi, ecx
stosd dword es:[edi], eax
add ecx, 8
dec edx
stosw word es:[edi], ax
jne 0x401782
inc esi
dec ebx
jne 0x401737
mov ebx, dword [ebp + 8]
xor esi, esi
cmp si, 3
jae case.0x401a1e.0
movzx ecx, si
mov eax, ecx
imul eax, ecx
imul eax, ecx
imul eax, ecx
add eax, 7
sub eax, 7
je 0x40180b
dec eax
je 0x4017c2
sub eax, 0xf
je 0x401817
jmp 0x401814
movzx ecx, word [ebp - 0x2a]
mov eax, ecx
push 5
cdq
pop edi
idiv edi
xor eax, eax
push 3
cmp edx, 2
setne al
mov dword [ebp - 0x24], eax
mov eax, ecx
cdq
pop ecx
idiv ecx
mov eax, dword [ebp - 0x24]
dec edx
neg edx
sbb edx, edx
neg edx
or eax, edx
je 0x401804
mov ax, word [ebp - 0x2c]
mov word [ebp - 0x2e], 1
mov word [ebp - 0x32], ax
jbe 0x401802
ja 0x401802
add al, 0xeb
adc byte [esi - 0x7d], ah
rol byte gs:[eax], cl
jmp 0x401814
and word [ebp - 0x2e], 0
jmp 0x401814
inc word [ebp - 0x2a]
jb 0x401814
jae 0x401814
add al, byte [esi - 0x15]
xor dword [ebp + 3], 0x8b030174
jne 0x40180b
inc esi
jmp 0x401798
jne 0x40181c
je 0x40181c
add ecx, dword [ebx - 0x36cc138b]
mov esi, dword [ebp - 0x14]
xor ecx, ecx
cmp cx, 8
jae 0x401b74
movzx eax, cx
lea edx, [eax + 1]
imul edx, eax
lea eax, [edx + 1]
cmp eax, 0x15
jg 0x4018e3
je 0x4018c8
dec eax
je 0x4018ab
dec eax
dec eax
je 0x401895
sub eax, 4
je 0x40187b
sub eax, 6
jne 0x40192f
cmp dword [ebp - 0x18], 0
je 0x40192f
mov eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x18]
and eax, 0xffff
add esi, eax
mov dword [ebp - 0x14], esi
jmp 0x40192f
mov esi, dword [ebp - 0x20]
imul esi, dword [ebp - 0x28]
and esi, 0xffff
mov dword [ebp - 0x14], esi
jle 0x401890
jg 0x401890
or cl, ch
lcall 0xd845, 0xc7000000
pop edx
add dword [eax], eax
add bl, ch
add dword [eax], edx
jmp 0x40192f
mov dword [ebp - 0x28], 0x15a
jmp 0x40189f
mov dword [ebp - 0x1c], 0x4e35
jmp 0x40192f
mov eax, dword [ebp - 0x10]
shr eax, 0x10
mov dword [ebp - 0x18], eax
push ecx
xor ecx, ecx
jecxz 0x4018ba
or dword [ecx - 0x75], ebx
inc ebp
invalid
pop ecx
mov eax, dword [ebp - 0x10]
and eax, 0xffff
mov dword [ebp - 0x20], eax
jmp 0x40192f
mov eax, dword [ebp - 0x1c]
mov edx, esi
imul eax, dword [ebp - 0x20]
and edx, 0xffff
shl edx, 0x10
lea eax, [edx + eax + 1]
mov dword [ebp - 4], eax
jmp 0x40192f
cmp eax, 0x1f
je 0x40191b
cmp eax, 0x2b
je 0x40190a
cmp eax, 0x39
jne 0x40192f
movzx eax, word [ebp - 0x2e]
push 2
cdq
pop edi
idiv edi
sub edx, 0
je 0x401935
dec edx
je 0x401a31
jmp 0x40192f
and dword [ebp - 4], 0x7fff
jo 0x401916
jno 0x401916
adc dword [ebx + 0x14ebfc5d], ecx
mov ebx, dword [ebp - 4]
jmp 0x40192f
mov eax, dword [ebp - 4]
mov dword [ebp - 0x10], eax
jp 0x401926
jnp 0x401926
push es
shr dword [ebp - 4], 0x10
jl 0x40192f
jge 0x40192f
pop es
inc ecx
jmp 0x401821
movzx ecx, bx
mov eax, ecx
push 0xb
cdq
pop esi
idiv esi
mov eax, ecx
push 7
pop ecx
push 2
pop edi
mov esi, edx
sub esi, 5
neg esi
cdq
sbb esi, esi
idiv ecx
inc esi
sub edx, edi
neg edx
sbb edx, edx
inc edx
or esi, edx
je 0x401973
mov ax, word [ebp - 0x2c]
mov word [ebp - 0x2e], 1
mov word [ebp - 0x32], ax
jmp 0x40181c
movzx eax, word [ebp - 0x42]
mov esi, dword [ebp + 8]
cmp eax, 9
ja case.0x401bb8.30
jmp dword [eax*4 + 0x401cbb]
jo 0x40198f
jno 0x40198f
and dword [ecx + 0x6505c83d], eax
add byte [edi - 0x53], al
push edx
in al, 0xf
test dword [edx - 0x7efffffe], edi
cmp eax, 0x6505cc
inc ecx
int1
dec esi
jle 0x4019b9
cmp dword [0x6505c8], 0xe452ad47
jne 0x401c59
cmp dword [0x6505cc], 0x7e4ef141
jne 0x401c59
test dword [edx - 0x14fffffe], ebp
sbb dword [ecx + 3], edi
jns 0x4019b6
jmp case.0x401983.9
jns 0x4019b6
js 0x4019b6
and eax, 0x5d83d83
add byte gs:[ecx], al
cmp dword [0x6505d8], 1
add eax, 0x75010065
or ebp, eax
fild word [ebx]
add byte [eax], al
jne case.0x401983.9
call 0x401da3
mov dword [0x6505d8], edi
xor edi, edi
cmp di, 4
jae case.0x401983.5
movzx ecx, di
lea eax, [ecx + 3]
imul eax, ecx
inc eax
dec eax
je 0x401a25
sub eax, 4
je 0x401a05
sub eax, 6
je 0x4019f8
sub eax, 8
je 0x40181c
jmp case.default.0x401a1e
mov word [ebp - 0x2e], 1
jbe 0x401a03
ja 0x401a03
xor al, 0xeb
sub dword [esi - 0x75], esp
inc ebp
mov esi, 0xd0453b66
jmp case.default.0x401a1e
mov ax, word [ebp - 0x42]
cmp ax, word [ebp - 0x30]
jne case.default.0x401a1e
movzx eax, word [ebp - 0x2a]
push 9
cdq
pop ecx
idiv ecx
cmp edx, 8
ja case.default.0x401a1e
jmp dword [edx*4 + 0x401ce3]
inc word [ebp - 0x42]
jb case.default.0x401a1e
jae case.default.0x401a1e
xor al, byte [edi - 0x15]
wait
inc edi
jmp 0x4019cc
xor esi, esi
movzx ecx, si
mov eax, ecx
imul eax, ecx
imul eax, ecx
inc eax
dec eax
je 0x401b34
dec eax
je 0x401b21
sub eax, 7
je case.default.0x401a7c
sub eax, 0x13
je 0x401ac0
sub eax, 0x25
je 0x401a9a
sub eax, 0x3d
je 0x401a83
sub eax, 0x5b
jne 0x401b50
movzx eax, bx
push 9
cdq
pop ecx
idiv ecx
cmp edx, 8
ja case.default.0x401a7c
jmp dword [edx*4 + 0x401d07]
mov eax, dword [ebp - 8]
mov ebx, dword [ebp - 0xc]
lea eax, [eax + ebx*2]
add ebx, eax
jmp 0x401a91
mov word [ebp - 0x2c], bx
jmp 0x401b50
movzx eax, word [ebp - 0xc]
movzx ecx, word [ebp - 8]
lea eax, [ecx + eax*4]
inc word [ebp + eax*2 - 0x48]
lea eax, [ebp + eax*2 - 0x48]
jne 0x401ab3
je 0x401ab3
adc esp, dword [esi - 0x75]
inc ebp
aam 0x66
mov dword [ebp - 0x32], eax
mov ax, word [ebp - 0x2c]
mov word [ebp - 0x32], ax
jmp 0x401b50
movzx eax, word [ebp - 0xc]
xor edx, edx
shl eax, 2
lea ecx, [ebp + eax*2 - 0x48]
jns 0x401ad2
js 0x401ad2
adc eax, 0xf87db70f
movzx edi, word [ebp - 8]
add edi, eax
mov di, word [ebp + edi*2 - 0x48]
cmp di, word [ecx]
jbe 0x401ae5
mov dword [ebp - 8], edx
inc edx
inc ecx
inc ecx
cmp dx, 3
jb 0x401acd
jmp 0x401b50
movzx eax, word [ebp - 8]
xor edx, edx
lea ecx, [ebp + eax*2 - 0x48]
push ecx
xor ecx, ecx
jecxz 0x401b00
sbb dword [ecx + 0xf], ebx
mov bh, 0x7d
hlt
pop ecx
movzx edi, word [ebp - 0xc]
lea edi, [eax + edi*4]
mov di, word [ebp + edi*2 - 0x48]
cmp di, word [ecx]
jbe 0x401b15
mov dword [ebp - 0xc], edx
inc edx
add ecx, 8
cmp dx, 3
jb 0x401afa
jmp 0x401b50
movzx eax, bx
push 3
cdq
pop ecx
idiv ecx
mov dword [ebp - 8], edx
jbe 0x401b32
ja 0x401b32
adc al, 0xeb
sbb al, 0xf
mov bh, 0xc3
jmp 0x401b50
movzx eax, bx
push 9
cdq
pop ecx
idiv ecx
push 3
pop ecx
mov ebx, edx
movzx eax, bx
cdq
idiv ecx
mov dword [ebp - 0xc], eax
jp 0x401b50
jnp 0x401b50
push ss
inc esi
cmp si, 7
jb 0x401a33
jmp case.0x401a7c.1
jl 0x401b65
jge 0x401b65
pop ss
jmp case.0x401a7c.1
jle 0x401b6f
jg 0x401b6f
sbb byte [edx + 3], bh
jp 0x401b74
jnp 0x401b74
jb 0x401b79
jb 0x401b79
jae 0x401b79
adc ch, cl
sbb ah, bh
invalid
jmp case.0x401a7c.1
jle case.0x401bb8.8
jg case.0x401bb8.8
sub byte [esi - 0x18], dl
inc edi
aas
add byte [eax], al
push esi
call 0x405ad0
jmp 0x401bc5
jmp case.0x401bb8.13
push esi
call 0x406280
jmp 0x401bc5
jp 0x401b9b
jnp 0x401b9b
jo case.0x401bb8.19
jo case.0x401bb8.19
jno case.0x401bb8.19
xor dword [esi - 0x18], edx
adc ecx, dword [esi]
add bl, ch
sbb eax, 0x8b0001eb
jmp 0x401bab
invalid
mov eax, dword [esi + 4]
dec eax
push esi
call 0x4069b9
jmp 0x401bc5
jmp 0x401bab
mov eax, dword [esi + 4]
dec eax
cmp eax, 0x1d
ja case.0x401bb8.4
jmp dword [eax*4 + 0x401d2b]
push esi
call fcn.00401e4f
pop ecx
jmp 0x401c86
push esi
call fcn.00405644
jmp 0x401bc5
push esi
call fcn.004056fe
jmp 0x401bc5
push esi
call fcn.004065f1
jmp 0x401bc5
push esi
call fcn.00406751
jmp 0x401bc5
push esi
call fcn.004068ad
jmp 0x401bc5
push esi
call fcn.004055a8
jmp 0x401bc5
push esi
call fcn.00405923
jmp 0x401bc5
push esi
call fcn.00405c26
jmp 0x401bc5
push esi
call fcn.00405d1d
jmp 0x401bc5
push esi
call fcn.00405df1
jmp 0x401bc5
push esi
call fcn.0040635c
jmp 0x401bc5
push esi
call fcn.00406ad3
jmp 0x401bc5
push esi
call fcn.00406ba9
jmp 0x401bc5
push esi
call fcn.00406c91
jmp 0x401bc5
push esi
call fcn.00406d3e
jmp 0x401bc5
push esi
call fcn.0040602f
jmp 0x401bc5
push esi
call fcn.00406169
jmp 0x401bc5
mov eax, 0xa8160019
jmp 0x401c86
jl case.0x401bb8.30
jge case.0x401bb8.30
daa
push esi
call fcn.0040585b
jmp 0x401bc5
jo 0x401c75
jno 0x401c75
add ebx, ebp
add eax, 0x1740375
jne case.0x401a1e.0
je case.0x401a1e.0
jmp case.0x401a1e.0
jne case.0x401a1e.0
je case.0x401a1e.0
xor edi, dword [esi + 3]
jle case.0x401bb8.4
jg case.0x401bb8.4
cmp byte [eax - 0x57e9ffed], bh
mov eax, 0xa8160013
pop edi
pop esi
pop ebx
leave
ret
jl 0x401c90
jge 0x401c90
aaa
jmp case.0x401a1e.0
push ecx
xor ecx, ecx
jecxz 0x401c98
sub dword [ecx - 0x15], ebx
loope 0x401d15
invalid
pop ecx
jmp case.0x401a1e.0
jns case.0x401bb8.10
add edi, dword [eax + 1]
js case.0x401bb8.10
xor eax, 0x424fe856
add byte [eax], al
push esi
call 0x405ef5
jmp 0x401bc5
jns case.0x401bb8.15
js case.0x401bb8.15
add eax, 0x47d6e856
add byte [eax], al
push esi
call 0x40648c
jmp 0x401bc5
inc eax
add byte [esi + 0x6a004017], dl
sbb eax, dword [eax]
xchg esi, eax
pop ss
inc eax
add byte [esi - 0x69ffbfe9], dl
pop ss
inc eax
add byte [edi - 0x34ffbfe5], bh
sbb eax, dword [eax]
rcr dword [ebx], cl
inc eax
add byte [ecx - 0xcffbfe4], al
sbb eax, dword [eax]
sti
sbb eax, dword [eax]
add ebx, dword [eax + eax*2]
add byte [ebx + 184565787], al
sbb al, 0x40
add byte [eax + 0x4300401c], ah
sbb al, 0x40
add byte [esi + 0x1c], cl
inc eax
add byte [esi + 0x1b00401b], cl
sbb al, 0x40
add byte [eax - 0x24ffbfe4], dh
sbb eax, dword [eax]
jecxz 0x401d88
inc eax
add bl, ch
sbb eax, dword [eax]
mov al, byte [0x2300401b]
sbb al, 64
add byte [ebx], ch
sbb al, 0x40
add byte [ebx], dh
sbb al, 0x40
add byte [ebx], bh
sbb al, 0x40
add byte [ebx], dl
sbb al, 0x40
add byte [ecx - 0x7effbfe4], al
sbb al, 0x40
add byte [ecx - 0x7effbfe4], al
sbb al, 0x40
add byte [ecx + 0x6500401c], al
sbb al, 0x40
add byte [ebp - 0x75], dl
in al, dx
sub esp, 0x130
push esi
push edi
push 0x12c
lea eax, [ebp - 0x130]
push 0x65066c
push eax
call fcn.00401e2c
mov eax, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
add esp, 0xc
mov esi, 0xe73d110a
xor eax, esi
xor edi, esi
push 0x4b
lea ecx, [ebp - 0x130]
pop edx
xor dword [ecx], esi
add ecx, 4
dec edx
jne 0x401de4
lea ecx, [ebp - 0x130]
xor eax, esi
push ecx
call eax
test eax, eax
mov dword [ebp - 4], eax
je 0x401e28
xor edi, esi
push ebx
mov ebx, edi
mov esi, 0x650634
lea edi, [ebp - 0x11c]
push edi
push dword [ebp - 4]
call ebx
mov dword [esi], eax
add esi, 4
add edi, 0x14
cmp esi, 0x65066c
jl 0x401e0e
push 1
pop eax
pop ebx
pop edi
pop esi
leave
ret