Function at 0x70a5a730
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov ebx, eax
sub esp, 0x7c
fld xword [ebp + 8]
fld st(0)
fstp xword [ebp - 0x40]
fxam
wait
fnstsw ax
and ax, 0x4500
cmp ax, 0x100
je 0x70a5ac59
movzx edx, word [ebp - 0x38]
mov esi, edx
and esi, 0x8000
jne 0x70a5a916
fxam
wait
fnstsw ax
fstp st(0)
and ax, 0x4500
cmp ax, 0x500
je 0x70a5ac74
and dx, 0x7fff
je 0x70a5a922
mov esi, dword [ebp - 0x40]
sub dx, 0x3fff
mov edi, dword [ebp - 0x3c]
mov word [ebp - 0x6a], dx
mov edx, dword [ebx + 0xc]
cmp edx, 0xe
mov dword [ebp - 0x58], edx
ja 0x70a5a819
test edi, edi
js 0x70a5a7c1
movzx eax, word [ebp - 0x6a]
lea esi, [esi]
shld edi, esi, 1
add esi, esi
test edi, edi
jns 0x70a5a7b0
mov dword [ebp - 0x58], edx
mov word [ebp - 0x6a], ax
mov ecx, 0xe
mov eax, 4
sub ecx, dword [ebp - 0x58]
xor edx, edx
shrd esi, edi, 1
shr edi, 1
shl ecx, 2
mov dword [ebp - 0x54], ecx
movzx ecx, byte [ebp - 0x54]
shld edx, eax, cl
shl eax, cl
test cl, 0x20
je 0x70a5a7ee
mov edx, eax
xor eax, eax
add esi, eax
adc edi, edx
test edi, edi
js 0x70a5ac4f
shld edi, esi, 1
add esi, esi
mov ecx, 0xf
sub ecx, dword [ebp - 0x58]
shl ecx, 2
shrd esi, edi, cl
shr edi, cl
test cl, 0x20
je 0x70a5a819
mov esi, edi
xor edi, edi
mov edx, edi
lea ecx, [ebp - 0x2a]
or edx, esi
mov dword [ebp - 0x54], ecx
je 0x70a5ac87
mov dword [ebp - 0x50], ecx
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x58], ebx
movzx eax, word [ebp - 0x6a]
mov ebx, esi
mov esi, edi
mov dword [ebp - 0x64], ecx
and ecx, 0x800
mov dword [ebp - 0x60], ecx
mov ecx, dword [ebp - 0x64]
and ecx, 0x20
mov dword [ebp - 0x5c], ecx
jmp 0x70a5a897
mov ecx, dword [ebp - 0x58]
mov edx, dword [ecx + 0xc]
test edx, edx
jle 0x70a5a864
mov ecx, dword [ebp - 0x58]
sub edx, 1
mov dword [ecx + 0xc], edx
shrd ebx, esi, 4
shr esi, 4
test edi, edi
je 0x70a5a8f8
cmp edi, 9
jle 0x70a5a90e
lea edx, [edi + 0x37]
or dl, byte [ebp - 0x5c]
mov ecx, dword [ebp - 0x50]
mov byte [ecx], dl
add ecx, 1
mov dword [ebp - 0x50], ecx
mov edx, esi
or edx, ebx
je 0x70a5a960
mov edi, ebx
mov ecx, esi
and edi, 0xf
mov edx, edi
xor edx, ebx
or ecx, edx
jne 0x70a5a851
mov ecx, dword [ebp - 0x54]
cmp dword [ebp - 0x50], ecx
ja 0x70a5a8c0
mov ebx, dword [ebp - 0x60]
test ebx, ebx
jne 0x70a5a8c0
mov edx, dword [ebp - 0x58]
mov ecx, dword [edx + 0xc]
test ecx, ecx
jle 0x70a5a8cc
nop
mov ecx, dword [ebp - 0x50]
mov byte [ecx], 0x2e
add ecx, 1
mov dword [ebp - 0x50], ecx
cmp edi, 1
je 0x70a5a8ec
lea edx, [eax - 1]
mov ecx, edi
xor ebx, ebx
shrd ecx, ebx, 1
mov eax, edx
mov esi, ecx
shr ebx, 1
xor esi, 1
or esi, ebx
lea edx, [eax - 1]
jne 0x70a5a8d8
xor ebx, ebx
xor esi, esi
test edi, edi
jne 0x70a5a873
mov ecx, dword [ebp - 0x54]
cmp dword [ebp - 0x50], ecx
ja 0x70a5a90e
mov edx, dword [ebp - 0x58]
mov edx, dword [edx + 0xc]
test edx, edx
js 0x70a5a88d
lea edx, [edi + 0x30]
jmp 0x70a5a882
or dword [ebx + 4], 0x80
jmp 0x70a5a768
mov edi, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x40]
mov word [ebp - 0x6a], 0
mov eax, edi
or eax, esi
je 0x70a5a797
test edi, edi
js 0x70a5acc3
mov edx, 0xffffc001
shld edi, esi, 1
mov eax, edx
add esi, esi
sub edx, 1
test edi, edi
jns 0x70a5a945
mov word [ebp - 0x6a], ax
jmp 0x70a5a797
mov ecx, dword [ebp - 0x54]
cmp dword [ebp - 0x50], ecx
mov word [ebp - 0x6a], ax
mov ebx, dword [ebp - 0x58]
je 0x70a5acbb
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ebx + 8]
test ecx, ecx
mov dword [ebp - 0x60], ecx
jle 0x70a5ac01
mov eax, dword [ebx + 0xc]
movsx ecx, word [ebp - 0x6a]
mov edx, dword [ebp - 0x50]
sub edx, dword [ebp - 0x54]
test eax, eax
mov dword [ebp - 0x58], ecx
jle 0x70a5a99d
add edx, eax
mov eax, dword [ebp - 0x64]
and eax, 0x1c0
cmp eax, 1
sbb eax, eax
lea esi, [edx + eax + 6]
mov eax, dword [ebp - 0x58]
mov edx, 0x66666667
imul edx
mov eax, dword [ebp - 0x58]
sar edx, 2
sar eax, 0x1f
mov ecx, edx
sub ecx, eax
je 0x70a5acaf
mov eax, 2
mov edi, 0x66666667
mov dword [ebp - 0x68], ebx
mov ebx, eax
lea esi, [esi]
mov eax, ecx
add esi, 1
imul edi
add ebx, 1
sar ecx, 0x1f
sar edx, 2
sub edx, ecx
mov ecx, edx
jne 0x70a5a9e0
movsx eax, bx
mov ebx, dword [ebp - 0x68]
mov dword [ebp - 0x68], eax
cmp dword [ebp - 0x60], esi
jle 0x70a5aa53
mov eax, dword [ebp - 0x60]
sub eax, esi
test dword [ebp - 0x64], 0x600
jne 0x70a5ac14
lea edx, [eax - 1]
test eax, eax
mov dword [ebx + 8], edx
jle 0x70a5aa5a
mov edx, ebx
mov eax, 0x20
call sym.___pformat_putc
mov eax, dword [ebx + 8]
lea edx, [eax - 1]
test eax, eax
mov dword [ebx + 8], edx
jg 0x70a5aa20
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x5c], ecx
test byte [ebp - 0x5c], 0x80
je 0x70a5aa60
mov edx, ebx
mov eax, 0x2d
call sym.___pformat_putc
jmp 0x70a5aa77
mov dword [ebx + 8], 0xffffffff
test byte [ebp - 0x5c], 0x80
jne 0x70a5aa45
test dword [ebp - 0x5c], 0x100
jne 0x70a5ac1c
test byte [ebp - 0x5c], 0x40
jne 0x70a5ac3e
mov edx, ebx
mov eax, 0x30
call sym.___pformat_putc
mov eax, dword [ebx + 4]
mov edx, ebx
and eax, 0x20
or eax, 0x58
call sym.___pformat_putc
mov eax, dword [ebx + 8]
test eax, eax
jle 0x70a5aabf
test byte [ebx + 5], 2
je 0x70a5aabf
sub eax, 1
mov dword [ebx + 8], eax
mov edx, ebx
mov eax, 0x30
call sym.___pformat_putc
mov eax, dword [ebx + 8]
lea edx, [eax - 1]
test eax, eax
mov dword [ebx + 8], edx
jg 0x70a5aaa6
mov ecx, dword [ebp - 0x54]
cmp dword [ebp - 0x50], ecx
mov esi, dword [ebp - 0x50]
ja 0x70a5aae0
jmp 0x70a5ab6d
mov edx, ebx
call sym.___pformat_putc
cmp esi, dword [ebp - 0x54]
je 0x70a5ab6d
sub esi, 1
movsx eax, byte [esi]
cmp eax, 0x2e
jne 0x70a5aad0
cmp dword [ebx + 0x10], 0xfffffffd
je 0x70a5abc1
movzx edx, word [ebx + 0x14]
test dx, dx
je 0x70a5abb0
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x50], esp
add eax, 0xf
and eax, 0xfffffff0
call fcn.70a58da0
sub esp, eax
lea edi, [esp + 0x10]
lea eax, [ebp - 0x44]
mov dword [ebp - 0x44], 0
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], edi
call sym._wcrtomb
test eax, eax
jle 0x70a5ac2d
lea ecx, [edi + eax]
mov dword [ebp - 0x5c], esi
mov esi, edi
mov edi, ecx
movsx eax, byte [esi]
mov edx, ebx
add esi, 1
call sym.___pformat_putc
cmp esi, edi
jne 0x70a5ab45
mov esi, dword [ebp - 0x5c]
mov esp, dword [ebp - 0x50]
jmp 0x70a5aad7
mov edx, ebx
mov eax, 0x30
call sym.___pformat_putc
mov eax, dword [ebx + 0xc]
lea edx, [eax - 1]
test eax, eax
mov dword [ebx + 0xc], edx
jg 0x70a5ab61
mov eax, dword [ebx + 4]
mov edx, ebx
and eax, 0x20
or eax, 0x50
call sym.___pformat_putc
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x68]
add dword [ebx + 8], ecx
mov ecx, ebx
or dword [ebx + 4], 0x1c0
mov edx, eax
sar edx, 0x1f
call sym.___pformat_int
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, ebx
mov eax, 0x2e
call sym.___pformat_putc
jmp 0x70a5aad7
mov dword [ebp - 0x44], 0
call sym._localeconv
lea edx, [ebp - 0x44]
mov dword [esp + 0xc], edx
lea ecx, [ebp - 0x46]
mov dword [esp + 8], 0x10
mov eax, dword [eax]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sym._mbrtowc
test eax, eax
jle 0x70a5ac6e
movzx edx, word [ebp - 0x46]
mov word [ebx + 0x14], dx
mov dword [ebx + 0x10], eax
jmp 0x70a5aaf9
movsx ecx, word [ebp - 0x6a]
mov dword [ebp - 0x68], 2
mov dword [ebp - 0x58], ecx
jmp 0x70a5aa5a
mov dword [ebx + 8], eax
jmp 0x70a5aa5a
mov edx, ebx
mov eax, 0x2b
call sym.___pformat_putc
jmp 0x70a5aa77
mov edx, ebx
mov eax, 0x2e
call sym.___pformat_putc
jmp 0x70a5ab59
mov edx, ebx
mov eax, 0x20
call sym.___pformat_putc
jmp 0x70a5aa77
add word [ebp - 0x6a], 1
jmp 0x70a5a800
fstp st(0)
mov ecx, ebx
mov edx, 0x70a68270
xor eax, eax
call sym.___pformat_emit_inf_or_nan
jmp 0x70a5aba6
movzx edx, word [ebx + 0x14]
jmp 0x70a5abf9
mov ecx, ebx
mov edx, 0x70a68274
mov eax, esi
call sym.___pformat_emit_inf_or_nan
jmp 0x70a5aba6
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x64], ecx
mov esi, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x64]
test esi, esi
mov dword [ebp - 0x5c], ecx
jle 0x70a5acce
mov byte [ebp - 0x2a], 0x2e
lea edx, [ebp - 0x29]
mov byte [edx], 0x30
add edx, 1
mov dword [ebp - 0x50], edx
jmp 0x70a5a979
mov dword [ebp - 0x68], 2
jmp 0x70a5a9ff
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x58], eax
jmp 0x70a5ac8d
mov word [ebp - 0x6a], 0xc002
jmp 0x70a5a797
and ch, 8
mov edx, dword [ebp - 0x54]
je 0x70a5aca1
jmp 0x70a5ac9a