Function at 0x409860
Capabilities:
Encode data using xor

Disassembly:
shr bl, 1
or dh, al
add edi, edi
adc eax, 0x40bf4c
mov eax, dword [esi - 0x30]
mov ecx, dword [esi + 4]
cdq
add al, 0x99
loope 0x4097d8
push 1
push edx
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetOverlappedResult]
loop 0x40983b
je 0x4097f3
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
cwde
rol byte [eax], 0xff
salc
test dword [edx], eax
jne 0x409805
pop edi
push edi
mov esp, ebp
jl 0x4097c8
invalid
std
add eax, 0xafcea
pop edi
pop esi
je 0x4097f5
pop ebp
ret
push esi
push eax
call 0xffb35640
mov esi, dword [esi + 0x37]
test esi, esi
je 0x4098a7
push esi
call fcn.0040a3a0
xor eax, eax
xchg edx, eax
pop ebp
push edi
add al, 0
nop
nop
nop
nop
nop
nop
add al, 0x90
add dl, byte [eax + 0x53ec8b55]
push ebp
mov ebp, esp
push ebx
push ebp
mov ebp, esp
push ebx
push esi
out 0xf8, eax
adc byte [edi + 0x25], dl
jge 0x409806
xor ebx, ebx
mov ebx, esi
or byte [ebp + 0x57501045], cl
push ecx
jb 0x40985a
adc al, ch
rcl dword [0x4d8b0089]
adc dl, bh
stc
sub esi, ecx
add ebx, ecx
test eax, eax
jne 0x409890
test esi, esi
ja 0x40986e
in eax, dx
dec ebp
adc al, 0x85
leave
je 0x409899
nop dword [ebx - 0x52]
pop ebx
pop ebp
out 0x10, eax
arpl word [esi + 0x10e75d5b], bp
xchg esp, eax
push ebp
mov ebp, esp
sub esp, 0x3c
mov eax, dword [0x4108dc]
push ebx
mov ebp, 0x1b8356d2
push ds
fmul qword [eax]
inc ecx
add byte [ebx - 0x43], dl
rcl byte [esi - 0x7d], cl
sbb ebx, dword [esi]
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], edx
jge 0x409901
hlt
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x77]
xor al, 0x51
call 0x86409ed0
adc dword [edi - 0x59], 0x5f
pop esi
pop ebp
jl 0x4098b8
cmp ebx, eax
mov ecx, dword [ebp + 0x10]
test ecx, 0xea730000
je 0x5df69b10
mov esi, ecx
xor ebx, ebx
and esi, 0x110000
mov dword [ebp - 4], ebx
mov dword [ebp - 0x14], edx
inc esi
or al, bh
cwde
cld
add dword [eax], eax
dec ebp
ret
stc
add dword [ebx], 0x7400227f
or ebx, 2
xor bl, byte [ebp + 0x3c]
and ecx, 0xaa0000
mov dword [ebp - 0x30], ecx
push es
or ebx, 4
mov dword [ebp - 4], ebx
outsb dx, byte [esi]
sub al, 0x14
sar eax, 1
insb byte es:[edi], dx
jne 0x409a0e
mov edx, dword [ebp + 0xc]
push 4
push 0x2e00e0
push edx
xor ebx, ebx
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 0x37
add eax, 0x8b5a75c0
inc ebp
or al, 0xbb
add al, 0
rcr dword [ecx], cl
push ebx
sbb eax, eax
or byte [eax - 0x80], ch
loope 0x409998
xor dword [ebx], eax
call dword [0x3cc104]
add esp, 0xc
test eax, eax
jne 0x4099d4
mov ecx, dword [ebp + 0xc]
mov ebx, 0x2300a9
mov word [ecx + 0xc], 0x5c
mov eax, dword [0xe041064c]
faddp st(0)
shr byte [eax + edx*2], 0x68
push 0x6a004101
inc ecx
call 0x8b40a940
sub ebp, 0xc
mov dword [0x41bc4c], eax
or al, 0xc0
je 0x4099ce
mov ecx, dword [ebp - 0x18]
lea edx, [ebp - 0x14]
inc edi
call 0x482cef2a
fldcw word [ebp + ecx*4 + 0x55]
invalid
push 1
call dword [sym.imp.KERNEL32.dll_SetLastError]
push ecx
rol byte [ebx - 0x67e2f905], 0x8b
push ebp
or al, 0x17
inc eax
add byte [ecx - 0x40], dl
cmp ebx, 6
sbb eax, 0xc558b98
pop ss
mov dword [edx + 0xc], 0xc9330043
sub ecx, eax
xlatb
test dword [ecx - 0x74ffff2c], esi
jge 0x4099fb
rcl edi, 0x85
mov cl, 0xd4
add byte [eax], al
mov edi, dword [ebp + 8]
mov edx, dword [ebp - 0x14]
push str._tr__s__th__s_Processing:__th__td__s__5I64d__td__td__s__5I64d__td__td__s__5I64d__td___tr__n
push 0x409c60
mov eax, dword [edi]
mov edx, dword [eax - 0x18]
idiv dword [ebx - 0x4c16d001]
add byte [ebp + 0x1f88300], ch
cmp eax, 1
jne 0x409a6a
mov eax, dword [0x410650]
cmp eax, edx
jne 0x409a38
bound ebp, qword [eax + 0x50]
adc byte [edi - 0x17fe9600], al
pop ss
push eax
add byte [eax], al
add esp, 0xc
fcom qword [eax + 6]
inc ecx
add byte [eax + eax*8], bl
je 0x409a94
mov ecx, dword [ebp - 0x68]
lea edx, [ebp + 0x14]
add bl, cl
push edx
loopne 0x4099e9
sub al, 0x1b
leave
push 0xffffffffffffffa7
and ecx, dword [edi - 0x807aa25]
fist word [ecx - 0x73]
out dx, al
hlt
cmp eax, edx
pavgw mm2, qword [edx - 0x5f000000]
push esp
add byte [ecx], al
xor al, 0xc2
jne 0x409a38
push edx
push 0x410440
push 1
call 0xe1417340
sbb dword [eax + 0xc], 0xffffffa3
push esp
push es
xchg esi, eax
add byte [ebp + 0x6aa17553], al
add edi, edi
cli
dec esp
sal byte [ecx - 0xb01700], 0xff
jge 0x409a7b
push 1
invalid
jge 0x409aac
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], ecx
fimul dword [ebp - 8]
clc
cmp dword [ebp - 0x18], ecx
je 0x409b13
mov edx, dword [ebp + 0x10]
push edx
push edi
call fcn.00409ed0
rol ah, 8
jmp 0x409b2c
cmp dword [0x4108dc], 0x32
pavgw mm3, qword [ebx]
add dword [ecx - 0x14], eax
mov eax, dword [ebp + 0x10]
mov ebx, 0x200
test ebx, eax
je 0x409cca
lcall 0xc7f, 0xe6000001
enter 0xffffffffffff850f, 1
add dword [eax], eax
add bh, al
jne 0x409b45
out 0x7f, al
or al, 0xc8
jne 0x409c3b
invalid
test dword [ebp + esi*2 + 0x67], ebp
mov eax, dword [0x41066a]
test eax, eax
daa
sbb dword [edx + 0x68], edi
sub byte [ebx + 0x41], ch
add byte [edx + 5], ch
add byte [ebp + 0x7a1927c0], al
push 0x416b28
push 5
call fcn.0040a940
lcall 0x4106, 0x74a30cc4
add byte [ebp - 0x9c48b40], al
add eax, 0x15c44d8d
and byte [edx], bl
mov ecx, dword [ebp + 0xc]
lea edx, [ebp - 0xaead1c]
push ebp
test eax, eax
invalid
mov dword [edi + 4], eax
mov esi, dword [ebp + 0x10]
not eax
lea ebx, [eax]
cld
dec ecx
fadd dword [ebx + 0x5b25dac0]
jmp 0x369b9c53
pop ebp
cmc
mov byte [ebp - 0xa], bl
mov byte [ebp - 9], bl
ja 0x409d31
clc
mov byte [ebp - 0x18], 1
push dword [eax - 0x70]
rol byte [eax], 0xb1
rcr byte [edx + 0xf], 0x68
sbb byte [ecx - 0x50ccff87], 0x59
add byte [eax], al
add esp, 0x14
jmp 0x409cf8
mov dword [0xc7f70875], eax
add byte [eax], al
adc byte [eax], al
je 0x409d72
test dword [esi + 4], 0x10000
je 0x409d72
mov eax, dword [0x41069b]
mov edx, dword [esi + 0x10]
cmp eax, ebx
invalid
or al, 0x3b
ret
test edi, 0x2000dd
je 0x409dff
test dword [esi + 4], 0x2009c
je 0x409dff
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x14], 0x5c
mov dword [ebp - 0x10], eax
mov eax, dword [0x41069c]
cmp edi, dword [ebp + esi*2 + 0x19]
push ebx
mov dword [ecx + eax + 0x16a0041], ecx
call 0x8640a8df
add esp, 0xc
cmp eax, dword [edx - 0x5d]
mov eax, dword [0x74004072]
sbb cl, byte [ebp + 0x558d0c4d]
neg esi
mov ecx, dword [ebp + 0x10]
push edx
push ecx
invalid
push 0x6731fcf7
mov eax, dword [0x414684]
cmp eax, ebx
je 0x409e6b
push eax
inc ebp
invalid
pop edi
pop esi
pop ebx
and ch, bl
pop ebp
ret