Function at 0x403ce0
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
push edi
or di, 0x74e3
sub di, ax
cmp di, dx
and edi, 0x25ec
and di, 0x51b8
or di, di
pop edi
push 0x11
push 0x411084
push 0xd
push 0x411074
call fcn.004025b0
jl 0x403d26
push cx
mov ch, 0xcc
pop cx
jge 0x403d26
add eax, dword [eax]
add byte [eax], al
xchg esi, eax
xor esp, dword [ebx + 0x6a]
punpckhbw mm4, qword [eax + 0x6a004112]
or eax, 0x41107468
add al, ch
ja 0x403d1f
push 0xf
push 0x4112a0
push 0xd
push 0x411074
call fcn.004025b0
jo 0x403d5d
invalid
push dx
mov dx, 0x7a78
pop dx
jno 0x403d5d
insb byte es:[edi], dx
mov bl, 0xbc
ja 0x403dc8
fdiv qword [eax - 0x7f6a6a73]
push 0x56
mov bh, byte [ecx]
mov eax, 0xb0681a6a
adc al, byte [ecx]
push 0x1a
push 0x4112b0
push 0xd
push 0x411074
call fcn.004025b0
add esp, 0x30
push eax
push ecx
dec cx
xor eax, 0x687c
test dx, cx
test ah, 0x30
mov cx, 0xcd1
pop ecx
pop eax
push 0xa
push 0x411304
push 0xd
push 0x411074
call fcn.004025b0
add esp, 0x10
push bx
push si
push edi
or edi, 0x3f3c
and si, cx
pop edi
pop si
pop bx
push 0xb
push 0x411310
push 0xd
push 0x411074
call fcn.004025b0
add esp, 0x10
push ebx
push cx
test dx, cx
test bl, ch
test cl, 0x43
and ch, bh
or cl, bl
and cx, di
pop cx
pop ebx
push 8
push 0x41131c
push 0xd
push 0x411074
call fcn.004025b0
add esp, 0x10
push ecx
cmp cl, 0x3f
or ch, dl
cmp cx, cx
or ch, 0x1f
pop ecx
push 9
push 0x411324
push 0xd
push 0x411074
call fcn.004025b0
jo 0x403e32
push edx
mov dx, 0xbd71
pop edx
jno 0x403e32
popal
stosd dword es:[edi], eax
retf
push 9
push 0x411330
push 0xd
push 0x411074
call fcn.004025b0
jbe 0x403e56
xchg ecx, ecx
xchg dl, dl
ja 0x403e56
pop eax
push 9
push 0x41133c
push 0xd
push 0x411074
call fcn.004025b0
add esp, 0x30
push eax
push ebx
push ecx
mov cl, 0x6d
inc ebx
pop ecx
pop ebx
pop eax
push 0xc
push 0x411348
push 0xd
push 0x411074
call fcn.004025b0
jle 0x403e94
push si
mov si, 0xf280
pop si
jg 0x403e94
push 3
push 0x411354
push 0xd
push 0x411074
call fcn.004025b0
add esp, 0x20
push edx
push bx
cmp edx, esi
inc dl
cmp dh, cl
mov edx, 0x5a9c
test dx, bx
test edx, 0x5a77
inc bl
and dh, 0x55
xor bl, dh
pop bx
pop edx
push 0xa
push 0x411358
push 0xd
push 0x411074
call fcn.004025b0
add esp, 0x10
push ebx
push dx
push di
cmp bh, dh
dec di
pop di
pop dx
pop ebx
push 0x40
push 0x411364
push 0xd
push 0x411074
call fcn.004025b0
add esp, 0x10
pushal
and bl, ah
inc dl
sub ch, ah
test ax, 0x1e59
popal
push 0xc
push 0x4113a4
push 0xd
push 0x411074
call fcn.004025b0
jb 0x403f3c
push di
pop di
jae 0x403f3c
scasb al, byte es:[edi]
bound eax, qword [edx]
pushfd
dec esi
call 0x10189eae
test byte [eax + ebx - 0x7f], 0x4b
lea ebp, [edx + 0xb]
push 0xb
push 0x4113b0
push 0xd
push 0x411074
call fcn.004025b0
jb 0x403f66
nop
nop
mov edi, edi
xchg dl, dl
jae 0x403f66
adc ebx, dword [ebx + edx*4 + 0x69]
push 4
push 0x4113bc
push 0xd
push 0x411074
call fcn.004025b0
add esp, 0x30
push bx
push si
push edi
or edi, 0x3f3c
and si, cx
pop edi
pop si
pop bx
push 4
push 0x4113c0
push 0xd
push 0x411074
call fcn.004025b0
add esp, 0x10
push ecx
push edi
push ax
test di, 0x934
test edi, 0x48bd
and edi, eax
and ch, 0xb
cmp cl, 0x6f
mov cl, 0xc
sub di, 0x5090
test cx, di
pop ax
pop edi
pop ecx
push 0xc
push 0x4113c4
push 0xd
push 0x411074
call fcn.004025b0
add esp, 0x10
push ax
push ecx
push esi
dec al
pop esi
pop ecx
pop ax
push 4
push 0x4113d0
push 0xd
push 0x411074
call fcn.004025b0
add esp, 0x10
pushal
test bx, 0xa43
cmp ch, 0x6e
sub ch, bl
cmp dx, 0x7a98
sub ecx, edx
popal
push 9
push 0x4113d4
push 0xd
push 0x411074
call fcn.004025b0
add esp, 0x10
push edx
push bx
cmp edx, esi
inc dl
cmp dh, cl
mov edx, 0x5a9c
test dx, bx
test edx, 0x5a77
inc bl
and dh, 0x55
xor bl, dh
pop bx
pop edx
push 0x16
push 0x4113e0
push 0xd
push 0x411074
call fcn.004025b0
add esp, 0x10
push ecx
and ch, al
cmp ch, 0x21
test ch, 0x5b
cmp ecx, edx
test ecx, 0x709c
xor ch, 6
pop ecx
push 7
push 0x4113f8
push 0xd
push 0x411074
call fcn.004025b0
add esp, 0x10
pop edi
pop esi
pop ebx
ret