Function at 0x403b4a
Capabilities:
Encode data using xor

Disassembly:
fild word [eax]
push ebp
mov al, byte [0x14ec83ec]
mov eax, dword [0x410280]
mov ecx, dword [0x40d0c3]
push ebx
push esi
in al, dx
adc al, 0xa1
add byte [edx], 0x41
add byte [ebx + 0x40d0c30d], cl
add byte [ebx + 0x56], dl
cmp eax, ecx
push edi
inc esi
dec esp
pop dword [ecx]
add byte [eax], al
mov edi, dword [ebx]
or byte [ebx], dh
fisttp dword [ebx + 0xc5e8906]
cmp eax, edi
cmp bl, byte [esi + 0x3c]
mov ebx, esi
and al, 0x2a
add byte [eax], al
mov dword [esi + 0x4c4f], esi
mov dword [edx + 0x94c328], esp
mov dword [esi - 0x19], ebx
je 0x4038aa
push eax
in eax, dx
movsb byte es:[edi], byte [esi]
adc al, 0x9d
add bl, ch
loope 0x4038c3
sbb byte [ebx + 0x4c], al
inc ebx
dec esp
inc eax
inc ecx
add byte [ebx + 0x53], dl
push ecx
push esi
enter 0x48a7, 0
add byte [edi + 0x16], ah
mov eax, dword [0x4117fc]
jnp 0x403915
mov esp, dword [edx + 0x10]
bound edx, qword [eax]
out dx, al
jle 0x40384e
push 1
push ecx
push edi
jbe 0x4038ed
sub eax, 0xc33b0023
je 0x403864
push eax
push str.socket
call fcn.00401e40
add esp, 8
mov edx, dword [edi]
push 1
cwde
or byte [edx - 0x18], dl
adc dword [eax + eax], 0x3b
je 0x403901
add byte [eax], al
cmp esp, dword [esi]
je 0x403901
push eax
push str.socket_nonblock
call 0xffdc1e40
sub dword [ebp + 0x2fba108], 0x41
add byte [ebx], bh
mov bl, 0x74
push ecx
push eax
sal byte [ebp + 0x68], 1
mov eax, dword [0x4102fb]
cmp esi, dword [ebx - 0x2fafae8c]
jne 0x403976
inc eax
push eax
call fcn.00408db0
cmp eax, ebx
je 0x40392e
cmp eax, 0x11187
je 0x403988
push eax
push str.socket_send_buffer
js 0x4038af
in eax, 0xff
invalid
mov ecx, dword [0xa4410fec]
or eax, 0xa4410fec
mov edx, dword [edi]
push ecx
push 0x30009380
push edx
call 0x1068db0
cmp eax, ebx
lahf
adc eax, 0x3811873d
xlatb
je 0x40392f
push eax
push 0x40f6fc
call 0x69401e40
push edx
test byte [eax], 0xe8
mov al, byte [0xa30000c5]
mov al, byte [0x8900410b]
adc eax, 0x41cea4
mov edx, dword [edi]
wait
xchg byte [ebp + 8], bh
add byte [eax], al
mov eax, dword [0x89a872a4]
test al, 0x89
mov dword [esi + 0xb70834], eax
xchg esp, eax
or eax, 0x41f7fc
rcl dword [edx - 0x2c]
mov ch, 0xc
xchg esp, eax
or al, 0x94
add byte [eax + 0x40], ah
test ebx, ebx
je 0x403a5d
cmp ebx, 0x6675f1
je 0x403a8b
inc esp
sti
mov ah, 0x23
mov esi, 0x906c7400
mov bl, 0xf8
pop ss
inc ecx
mov ch, 0x8b
pop es
lea eax, [edi]
in al, dx
cwde
inc ebp
lock add dword [edi + 0x525100c5], eax
mov dword [esi - 8], ebp
call 0x1d40622a
mov eax, dword [edi]
push eax
call fcn.0040b710
mov edi, dword [0x4102c4]
mov eax, dword [0x1602b8]
mov byte [0xadac88b], al
stc
or bl, ah
cmp eax, 0xc0410242
mov dword [0x4102b8], eax
mov esi, 0xc8158b23
rol byte [eax], 0x68
mov al, 0xd2
inc eax
add byte [ebx - 0xad097b], al
adc eax, sym.imp.MSVCRT.dll_fprintf
sbb ebp, edi
cwde
rol byte [eax + 0x65], cl
call fcn.00401eb0
add esp, 0x2c
push esi
sub al, 0x56
mov dword [esi + 0x6d], 0xd40000
call 0xffa03860
add esp, 0xffffffe6
pop edi
pop esi
pop ebx
stosd dword es:[edi], eax
in eax, 0x5d
pop ebp
mov eax, 1
mov dword [esi + 0x14], 0xe3002e00
mov dword [esi + 8], eax
mov edx, dword [0x4117f8]
lea ecx, [ebp + 0x6f]
mov dword [ebp - 0x10], eax
mov eax, dword [edi]
push ecx
pop edx
jne 0x403a0e
inc ebp
cdq
add al, 0
mov dword [ebx], edi
clc
mov dword [ebp - 4], esi
salc
sbb byte [esi], ah
daa
imul dword [0xe58c795e]
pop ebp
ret
aaa
inc esi
fadd dword [edx]
add byte [eax], al
add byte [ebx + 0x41024915], cl
rol dword [edx - 0x50], cl
mov dword [0x4102a8], edx
call fcn.00401ea0
add esp, 0xffffff86
pop edi
pop esi
pop ebx
pushfd
cmp dword [ebp - 0x3d], ebx
nop
nop
jne 0x403a81
nop
mov edx, 0x90909090
nop
mov eax, dword [0x55909090]
mov ebp, esp
sub esp, 0x14
push esi
mov esi, dword [ebp - 2]
push edi
mov eax, dword [esi + 0xc]
and dword [edi + 0x18b22e5], eax
and al, 8
outsb dx, byte [esi]
push ebp
test eax, eax
je 0x403ac4
mov eax, dword [0x4102c0]
xlatb
fimul word [edi]
test byte [ecx + eax], ch
add byte [eax - 0x5d], cl
mov ah, 2
inc ecx
xor cl, ch
popal
add esp, esi
add byte [ebx + 0x4102b434], al
xor dword [esp + esi*4], 2
inc ecx
add byte [ecx], al
jne 0x403ad7
mov edx, dword [eax]
adc byte [ebx - 0x74], ch
add al, byte [ecx]
jmp 0x403afb
mov ecx, dword [esi + 0x10]
mov eax, dword [0x6241028c]
cmp eax, dword [eax + ebx*4 - 0x47f274c7]
add al, byte [ecx]
mov eax, dword [0x4102c0]
inc ecx
ret
mov eax, dword [0x4102ac]
test eax, 0x78d0100d
cmp eax, ecx
jge 0xf2403c25
mov edx, dword [0xb75dc8]
mov edi, eax
shl edi, 5
add edi, edx
inc eax
lodsb al, byte cs:[esi]
inc byte [ebx + 0x2edae800]
add byte [eax], al
scasb al, byte es:[edi]
mov al, byte [0x8900410b]
adc eax, 0x420ba4
mov dword [esi + 0x9004650], eax
mov edx, dword [0x419ff8]
mov eax, dword [esi + 0xd30]
mov dword [esi + 0x854], edx
mov dword [edi], eax
pop es
mov ecx, dword [esi + 0x834]
mov dword [edi + 4], ecx
mov ecx, dword [esi + 0x876]
mov ebp, dword [esi]
xor byte [eax], cl
add byte [edi], bl
mov ecx, dword [0x834]
sub ecx, eax
mov esp, dword [edi]
cmp al, 0x86
add byte [eax], al
sbb edi, dword [eax]
aad 0xc0
jg 0x403b7e
or al, byte [esp + esi]
leave
jae 0x403b7e
xor ecx, ecx
xor eax, eax
mov dword [edi + 0x45], ecx
mov dword [edi + 0x14], eax
mov ecx, dword [esi - 0x31ff0ab0]
cld
xchg byte [eax], dh
or byte [eax], al
add byte [ebx - 0x6cf7cb6a], cl
add byte [ebp + 0x54608bc8], dl
or byte [ecx], ch
sbb eax, edx
test eax, eax
jg 0x403bae
out dx, eax
enter 0x4685, 0x73
add al, 0x33
leave
xor eax, eax
mov dword [edi + 0x18], ecx
push 0xffffffffffffff9f
sbb al, 0x8b
mov cs, word [eax + 8]
add byte [eax], al
mov esp, dword [ecx - 0x15fff7c0]
mov edx, dword [esi + 0xda0844]
sub ecx, eax
mov eax, dword [esi + 0x85c]
sbb eax, edx
test eax, eax
jg 0x403bde
jl 0x403bda
test dword [edi + 0x4f], ebx
add al, 0x33
leave
xor ecx, ecx
xor eax, eax
mov dword [edi + 8], ecx
lds eax, [edi + 0xc]
mov ecx, edi
mov ch, 0xd0
inc eax
add byte [ebx - 0x3d], al
je 0x403bc8
mov edi, dword [0xb94102ac]
mov eax, edi
cdq
idiv ecx
test edx, edx
jne 0x403c25
loope 0x403bfb
enter 0x40c0, 0
push edi
add edx, 0xa
push 0x40e606
push edx
invalid
adc eax, sym.imp.MSVCRT.dll_fflush
add esp, 0x10
mov eax, dword [0x4181d9]
xor cl, byte [esi + 4]
lea edx, [ebp - 0x14]
inc edi
inc ebp
add al, 1
add byte [eax], al
add byte [ecx - 0x79d2eb0], ch
sub dword [edi + 0x64201b25], edi
dec esi
add al, 0x40
call 0xb38110
push esi
mov dword [esi + 0x15], 0xbf0000
call 0xe04038e8
jo 0x403c1d
pop edi
push edi
mov esp, ebp
pop ebp
ret