Function at 0x41aeac
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x6c
fld xword [esp + 0x80]
mov ebx, eax
fld st(0)
fstp xword [esp + 0x50]
fxam
wait
fnstsw ax
and eax, 0x4500
cmp eax, 0x100
je 0x41b344
mov edx, dword [esp + 0x58]
mov esi, edx
and esi, 0x8000
jne 0x41b0c4
fxam
wait
fnstsw ax
fstp st(0)
and eax, 0x4500
cmp eax, 0x500
je 0x41b35a
and edx, 0x7fff
je 0x41b0d0
sub edx, 0x3fff
mov word [esp + 0xe], dx
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov ebp, dword [ebx + 0xc]
cmp ebp, 0xe
ja 0x41afc6
cmp ecx, 0x7fffffff
ja 0x41af49
mov ax, word [esp + 0xe]
add edx, edx
adc ecx, ecx
cmp ecx, 0x7fffffff
jbe 0x41af38
mov word [esp + 0xe], ax
mov esi, edx
mov edi, ecx
shrd esi, edi, 1
shr edi, 1
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
mov ecx, 0xe
sub ecx, ebp
shl ecx, 2
mov esi, 4
xor edi, edi
shld edi, esi, cl
shl esi, cl
test cl, 0x20
je 0x41af7a
mov edi, esi
xor esi, esi
add dword [esp + 0x10], esi
adc dword [esp + 0x14], edi
mov eax, dword [esp + 0x14]
test eax, eax
js 0x41b33a
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
add dword [esp + 0x10], eax
adc dword [esp + 0x14], edx
mov edx, 0xf
sub edx, ebp
lea ecx, [edx*4]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
shrd esi, edi, cl
shr edi, cl
test cl, 0x20
je 0x41afc2
mov esi, edi
xor edi, edi
mov edx, esi
mov ecx, edi
mov edi, ecx
or edi, edx
je 0x41b36d
mov esi, dword [ebx + 4]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
lea edi, [esp + 0x3e]
mov dword [esp + 0x24], edi
mov esi, edi
mov ebp, dword [esp + 0x1c]
and ebp, 0x800
mov dword [esp + 0x2c], ebp
mov al, byte [esp + 0x1c]
and eax, 0x20
mov byte [esp + 0x28], al
mov ax, word [esp + 0xe]
mov dword [esp + 0x10], ebx
jmp 0x41b04f
mov ebp, dword [esp + 0x10]
mov edi, dword [ebp + 0xc]
test edi, edi
jle 0x41b01f
dec edi
mov ebp, dword [esp + 0x10]
mov dword [ebp + 0xc], edi
shrd edx, ecx, 4
shr ecx, 4
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x20], edi
test ebx, ebx
je 0x41b0ac
cmp ebx, 9
jle 0x41b0bd
add ebx, 0x37
or ebx, dword [esp + 0x28]
mov byte [esi], bl
inc esi
mov ebx, ecx
or ebx, edx
je 0x41b108
mov ebx, edx
and ebx, 0xf
mov ebp, ebx
sar ebp, 0x1f
xor ebp, ecx
mov edi, edx
xor edi, ebx
or ebp, edi
jne 0x41b00c
cmp esi, dword [esp + 0x24]
ja 0x41b07c
mov edi, dword [esp + 0x2c]
test edi, edi
jne 0x41b07c
mov edi, dword [esp + 0x10]
mov ebp, dword [edi + 0xc]
test ebp, ebp
jle 0x41b088
mov byte [esi], 0x2e
inc esi
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x20], ebp
mov edi, edx
xor edi, 1
or edi, ecx
je 0x41b0a4
lea esi, [esi]
dec eax
shrd edx, ecx, 1
shr ecx, 1
mov edi, edx
xor edi, 1
or edi, ecx
jne 0x41b094
xor edx, edx
xor ecx, ecx
test ebx, ebx
jne 0x41b032
cmp esi, dword [esp + 0x24]
ja 0x41b0bd
mov ebp, dword [esp + 0x10]
mov edi, dword [ebp + 0xc]
test edi, edi
js 0x41b045
add ebx, 0x30
jmp 0x41b042
or dword [ebx + 4], 0x80
jmp 0x41aee9
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov eax, ecx
or eax, edx
je 0x41b2d4
test ecx, ecx
js 0x41b3ac
mov esi, 0xffffc001
nop
add edx, edx
adc ecx, ecx
mov eax, esi
dec esi
test ecx, ecx
jns 0x41b0f0
mov word [esp + 0xe], ax
jmp 0x41af1f
mov word [esp + 0xe], ax
mov ebx, dword [esp + 0x10]
cmp esi, dword [esp + 0x24]
je 0x41b3a7
mov ebp, dword [ebx + 8]
mov dword [esp + 0x28], ebp
test ebp, ebp
jle 0x41b2b9
mov edx, esi
sub edx, dword [esp + 0x24]
movsx ecx, word [esp + 0xe]
mov dword [esp + 0x10], ecx
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x41b142
add edx, eax
mov eax, dword [esp + 0x1c]
and eax, 0x1c0
cmp eax, 1
sbb eax, eax
lea ebp, [edx + eax + 6]
mov ecx, 0x66666667
mov eax, dword [esp + 0x10]
imul ecx
mov ecx, edx
sar ecx, 2
mov eax, dword [esp + 0x10]
sar eax, 0x1f
sub ecx, eax
je 0x41b39d
mov edi, 2
inc ebp
inc edi
mov eax, 0x66666667
imul ecx
sar edx, 2
sar ecx, 0x1f
sub edx, ecx
mov ecx, edx
jne 0x41b178
cmp ebp, dword [esp + 0x28]
jge 0x41b29c
mov eax, dword [esp + 0x28]
sub eax, ebp
mov dword [ebx + 8], eax
test dword [esp + 0x1c], 0x600
je 0x41b2e0
movsx edi, di
test byte [esp + 0x20], 0x80
jne 0x41b2a8
test dword [esp + 0x20], 0x100
jne 0x41b318
test byte [esp + 0x20], 0x40
jne 0x41b329
mov edx, ebx
mov eax, 0x30
call dbg.__pformat_putc
mov eax, dword [ebx + 4]
and eax, 0x20
or eax, 0x58
mov edx, ebx
call dbg.__pformat_putc
mov eax, dword [ebx + 8]
test eax, eax
jle 0x41b21d
test byte [ebx + 5], 2
je 0x41b21d
dec eax
mov dword [ebx + 8], eax
nop
mov edx, ebx
mov eax, 0x30
call dbg.__pformat_putc
mov eax, dword [ebx + 8]
lea edx, [eax - 1]
mov dword [ebx + 8], edx
test eax, eax
jg 0x41b204
cmp esi, dword [esp + 0x24]
jbe 0x41b258
mov ebp, dword [esp + 0x24]
jmp 0x41b237
mov edx, ebx
call dbg.__pformat_putc
cmp esi, ebp
jbe 0x41b258
dec esi
movsx eax, byte [esi]
cmp eax, 0x2e
jne 0x41b22c
mov eax, ebx
call dbg.__pformat_emit_radix_point
jmp 0x41b233
mov edx, ebx
mov eax, 0x30
call dbg.__pformat_putc
mov eax, dword [ebx + 0xc]
lea edx, [eax - 1]
mov dword [ebx + 0xc], edx
test eax, eax
jg 0x41b24c
mov eax, dword [ebx + 4]
and eax, 0x20
or eax, 0x50
mov edx, ebx
call dbg.__pformat_putc
add dword [ebx + 8], edi
or dword [ebx + 4], 0x1c0
mov esi, dword [esp + 0x10]
mov edi, esi
sar edi, 0x1f
mov eax, esi
mov edx, edi
mov ecx, ebx
call dbg.__pformat_int
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [ebx + 8], 0xffffffff
jmp 0x41b1ae
mov edx, ebx
mov eax, 0x2d
call dbg.__pformat_putc
jmp 0x41b1d5
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
mov edi, 2
movsx edx, word [esp + 0xe]
mov dword [esp + 0x10], edx
jmp 0x41b1b1
mov word [esp + 0xe], 0
jmp 0x41af1f
lea edx, [eax - 1]
mov dword [ebx + 8], edx
test eax, eax
jle 0x41b1ae
nop
mov edx, ebx
mov eax, 0x20
call dbg.__pformat_putc
mov eax, dword [ebx + 8]
lea edx, [eax - 1]
mov dword [ebx + 8], edx
test eax, eax
jg 0x41b2f0
mov edx, dword [ebx + 4]
mov dword [esp + 0x20], edx
movsx edi, di
jmp 0x41b1b1
mov edx, ebx
mov eax, 0x2b
call dbg.__pformat_putc
jmp 0x41b1d5
mov edx, ebx
mov eax, 0x20
call dbg.__pformat_putc
jmp 0x41b1d5
inc word [esp + 0xe]
jmp 0x41af9e
fstp st(0)
mov ecx, ebx
mov edx, 0x477240
xor ax, ax
call dbg.__pformat_emit_inf_or_nan
jmp 0x41b293
mov ecx, ebx
mov edx, 0x477244
mov eax, esi
call dbg.__pformat_emit_inf_or_nan
jmp 0x41b293
mov eax, dword [ebx + 4]
mov dword [esp + 0x1c], eax
lea edx, [esp + 0x3e]
mov dword [esp + 0x24], edx
test ebp, ebp
jle 0x41b3b8
mov byte [esp + 0x3e], 0x2e
lea esi, [esp + 0x40]
lea edx, [esp + 0x3f]
mov byte [edx], 0x30
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x20], edi
jmp 0x41b11b
mov edi, 2
jmp 0x41b18d
mov ebp, dword [ebx + 0xc]
jmp 0x41b37c
mov word [esp + 0xe], 0xc002
jmp 0x41af1f
test dword [esp + 0x1c], 0x800
jne 0x41b380
lea esi, [esp + 0x3f]
mov edx, dword [esp + 0x24]
jmp 0x41b38d