Function at 0x4031bf
Capabilities:
Encode data using xor

Disassembly:
mov al, 0xd3
xor dword [esi + 0x1a], eax
mov dl, 0xd1
mov bl, 0x33
xor esi, dword [ebx]
inc esi
adc bh, byte [esi + 0xdbacb46]
pop ecx
aaa
pop ecx
xor al, 0x59
int3
inc esi
cmp edi, dword [eax + 0x47f3b635]
xor eax, ebx
xor eax, ebx
xor al, 0xf4
jbe 0x40319d
xor esi, dword [ebx]
xor esi, dword [ebx]
fdivr dword [esi]
add eax, 0x8bc720f8
inc eax
adc byte [ebx], dh
xor ebx, eax
fcom qword ss:[ebx]
fadd st(6)
xchg edi, eax
fdivr dword [esi]
out 0x31, eax
je 0x40323e
mov ch, byte [edi - 0x27cccccd]
in al, dx
xchg ecx, eax
fadd st(6)
push edx
fdivr dword [edi + eax*2]
add al, 0xf7
sub edx, ebx
jns 0x33736503
fdiv dword [esi]
scasd eax, dword es:[edi]
mov cl, 0xd8
invalid
mov bl, 0xa6
push 0x29e
mov ecx, dword [esp]
add esp, 4
jmp 0x40324e
add al, byte [eax]
add byte [ebx - 0x3b7cdbf4], cl
add al, 0xeb
add eax, 0xefeb6f5c
jle 0x40323a
jmp 0x40325e
push cs
or dword [0xba809165], 0x2d
add byte [eax], al
add bl, ch
add eax, 0xf5eb6f2f
imul al
out dx, eax
in al, dx
invalid
mov edx, 0x2d
jmp 0x403261
jmp 0x403255
call fcn.00401f55
mov dword [ebp - 4], 1
mov ebx, dword [ebp + 8]
call 0x40328e
jae 0x4032d9
imul esp, dword [ebp + 0x64], 0x61006c6c
jae 0x4032f7
push 0x6b6f6f
jae 0x4032f5
js 0x4032f1
imul eax, dword [eax], 0
add byte [eax], al
pop esi
cmp byte [esi], 0
je 0x4032a5
push esi
call dword [ebx + 0x18]
test eax, eax
jne 0x4034bb
add esi, 8
jmp 0x40328f
call 0x40337f
pop esp
add byte [edx], dl
inc ebp
add byte [edi], al
dec ecx
add byte [ebx], dl
push esp
add byte [edx], dl
pop ecx
add byte [eax + eax + 0x4d], bl
add byte [ecx], al
inc ebx
add byte [eax], cl
dec ecx
add byte [esi], cl
inc ebp
add byte [eax + eax + 0x53], bl
add byte [ecx], bh
jae 0x4032d4
je 0x4032d6
add byte gs:[ebp], ch
pop esp
add byte [ebx], al
jne 0x4032e0
add byte [eax + eax + 0x43], bl
add byte [ebp], dh
jb 0x4032e2
jb 0x4032e4
add byte gs:[esi], ch
je 0x4032ea
inc ebx
add byte [edi], ch
outsb dx, byte [esi]
add byte [eax + eax + 0x72], dh
add byte [edi], ch
insb byte es:[edi], dx
add byte [edx], dh
outsd dx, dword [esi]
add byte [eax + eax + 0x53], ch
add byte [ebp], ah
je 0x4032fe
add byte [ebx], dl
add byte gs:[eax + eax + 0x5c], dh
pop esp
add byte [ebp], al
outsb dx, byte [esi]
add byte [ebp], dh
insd dword es:[edi], dx
add byte [eax + eax + 0x49], bl
add byte [eax + eax + 0x45], al
add byte [eax], al
add byte [eax], al
add byte [eax + eax + 0x52], bl
add byte [ebp], al
inc edi
add byte [ecx], cl
push ebx
add byte [eax + eax + 0x52], dl
add byte [ecx], bl
pop esp
add byte [ebp], cl
inc ecx
add byte [ebx], al
dec eax
add byte [ecx], cl
dec esi
add byte [ebp], al
pop esp
add byte [ebx], dl
jns 0x40333c
jae 0x40333e
je 0x403340
add byte gs:[ebp], ch
pop esp
add byte [ebx], al
jne 0x40334a
jb 0x40334c
jb 0x40334e
add byte gs:[esi], ch
je 0x403354
inc ebx
add byte [edi], ch
outsb dx, byte [esi]
add byte [eax + eax + 0x72], dh
add byte [edi], ch
insb byte es:[edi], dx
add byte [ebx], dl
add byte gs:[eax + eax + 0x5c], dh
add byte [ebp], al
outsb dx, byte [esi]
add byte [ebp], dh
insd dword es:[edi], dx
add byte [eax + eax + 0x53], bl
add byte [ebx], al
push ebx
add byte [ecx], cl
add byte [eax], al
add byte [esi - 0x80], bl
add byte ds:[edi], cl
test byte [eax], dh
add dword [eax], eax
add byte [eax + 4], ch
add dword [eax], eax
add byte [edx + 0x40], ch
cmp byte [esi], 0
je 0x4034b9
push 0x104
push 0x40
call dword [ebx + 0x38]
mov dword [ebp - 0x18], eax
push esi
push eax
call dword [ebx + 0x28]
push dword [ebp - 0x18]
lea edx, [ebp - 0x3c]
push edx
call dword [ebx + 0xc]
lea eax, [ebp - 0x3c]
lea edi, [ebp - 0x34]
mov dword [edi], 0x18
mov dword [edi + 4], 0
mov dword [edi + 8], eax
mov dword [edi + 0xc], 0x40
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
push edi
push 9
lea edx, [ebp - 0x1c]
push edx
call dword [ebx + 0x8c]
test eax, eax
jne 0x4034ab
lea edx, [ebp - 0x14]
push edx
push 0
push 0
push 2
push dword [ebp - 0x1c]
call dword [ebx + 0x90]
cmp dword [ebp - 0x14], 0
je 0x4034a5
push dword [ebp - 0x14]
push 0x40
call dword [ebx + 0x38]
mov dword [ebp - 0xc], eax
lea edx, [ebp - 0x14]
push edx
push dword [ebp - 0x14]
push dword [ebp - 0xc]
push 2
push dword [ebp - 0x1c]
call dword [ebx + 0x90]
test eax, eax
jne 0x40349f
cmp dword [ebp - 0x14], 0
je 0x40349f
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x14]
mov dword [ebp - 8], eax
xor edi, edi
cmp edi, dword [ebp - 8]
jae 0x40349f
lea edx, [ebp - 0x14]
push edx
push 0
push 0
push 0
push edi
push dword [ebp - 0x1c]
call dword [ebx + 0x94]
cmp dword [ebp - 0x14], 0
je 0x40349c
add dword [ebp - 0x14], 2
push dword [ebp - 0x14]
push 0x40
call dword [ebx + 0x38]
mov dword [ebp - 0x10], eax
lea edx, [ebp - 0x14]
push edx
push dword [ebp - 0x14]
push dword [ebp - 0x10]
push 0
push edi
push dword [ebp - 0x1c]
call dword [ebx + 0x94]
test eax, eax
jne 0x403496
cmp dword [ebp - 0x14], 0
je 0x403496
mov eax, dword [ebp - 0x10]
lea eax, [eax + 0x10]
push eax
push ebx
call fcn.00402a57
test eax, eax
je 0x4034bb
push dword [ebp - 0x10]
call dword [ebx + 0x3c]
inc edi
jmp 0x403437
push dword [ebp - 0xc]
call dword [ebx + 0x3c]
push dword [ebp - 0x1c]
call dword [ebx + 4]
push dword [ebp - 0x18]
call dword [ebx + 0x3c]
add esi, 0x6a
jmp 0x403380
jmp 0x4034c2
mov dword [ebp - 4], 0
jmp 0x4034d6
push 0x2466
mov eax, dword [esp]
add esp, 4
jmp 0x4034d9
jmp 0x4034c7
jmp 0x4034eb
push 0x29e
pop ecx
jmp 0x4034ee
jmp 0x4034e1
jmp 0x4034fc
push 0x2d
pop edx
jmp 0x4034ff
jmp 0x4034f5
call fcn.00401f55
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
leave
ret 4