Function at 0x49b660
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x28
cmp dword [0x6d5530], 0
push ebx
push ebp
push esi
push edi
jne 0x49c218
mov dword [0x6d5530], 1
mov esi, 0xffffff00
lea eax, [esi + 0xd2]
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fmul qword [0x55be40]
fld qword [0x4c6040]
fxch st(1)
call fcn.004aabb0
fstp dword [esi*4 + 0x6d22b8]
inc esi
cmp esi, 0x7a
jl 0x49b689
xor esi, esi
mov dword [esp + 0x10], esi
fild dword [esp + 0x10]
fld qword [0x557688]
call fcn.004aabb0
fstp dword [esi*4 + 0x6c8480]
inc esi
mov dword [esp + 0x10], esi
cmp esi, 0x200f
jl 0x49b6bd
movsd xmm2, qword [0x4c5bf8]
mov eax, str.333333
xor ecx, ecx
nop
movsd xmm0, qword [eax]
movapd xmm1, xmm0
mulsd xmm1, xmm0
addsd xmm1, xmm2
sqrtsd xmm1, xmm1
movapd xmm3, xmm2
divsd xmm3, xmm1
divsd xmm0, xmm1
cvtsd2ss xmm3, xmm3
cvtpd2ps xmm0, xmm0
movss dword [ecx + 0x6d1e98], xmm3
movss dword [ecx + 0x6d1df4], xmm0
add eax, 8
add ecx, 4
cmp eax, str.___f_
jl 0x49b6f0
mov esi, 0x13
mov edi, 0x6c8240
mov dword [esp + 0x18], esi
lea ecx, [esi - 0x12]
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
fmul qword [0x55be38]
call fcn.004aa410
fmul qword [0x4c5b80]
fstp qword [esp + 0x30]
fild dword [esp + 0x18]
fmul qword [0x5539f8]
fdiv qword [0x55be30]
call fcn.004aa2e0
fdivr qword [esp + 0x30]
lea edx, [esi + 0x12]
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fst dword [edi + 0x90]
fstp dword [edi]
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
fmul qword [0x55be38]
call fcn.004aa410
fmul qword [0x4c5b80]
lea eax, [esi + 0x24]
mov dword [esp + 0x30], eax
fstp qword [esp + 0x28]
fild dword [esp + 0x30]
fmul qword [0x5539f8]
fdiv qword [0x55be30]
call fcn.004aa2e0
fdivr qword [esp + 0x28]
add esi, 2
add edi, 4
mov dword [esp + 0x18], esi
fstp dword [esp + 0x30]
fld dword [esp + 0x30]
fst dword [edi + 0x1f4]
fstp dword [edi + 0x44]
cmp esi, 0x37
jl 0x49b743
mov esi, 0x2b
mov edi, 0x6c8420
mov dword [esp + 0x18], esi
mov edi, edi
lea ecx, [esi + 0xc]
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
fmul qword [0x5539f8]
fdiv qword [0x55be30]
call fcn.004aa2e0
fdivr qword [0x4c5b80]
fstp dword [edi - 0x108]
fild dword [esp + 0x18]
fmul qword [0x5539f8]
fdiv qword [0x55be30]
call fcn.004aa2e0
fdivr qword [0x4c5b80]
lea edx, [esi - 0x1e]
mov dword [esp + 0x30], edx
fstp dword [edi]
fild dword [esp + 0x30]
fmul qword [0x55be28]
call fcn.004aa410
fmul qword [0x4c5b80]
lea eax, [esi + 0x18]
mov dword [esp + 0x30], eax
fstp qword [esp + 0x28]
fild dword [esp + 0x30]
fmul qword [0x5539f8]
fdiv qword [0x55be30]
call fcn.004aa2e0
fdivr qword [esp + 0x28]
xorps xmm0, xmm0
lea ecx, [esi - 0x2a]
mov dword [esp + 0x30], ecx
movss dword [edi - 0x30], xmm0
movss dword [edi - 0xd8], xmm0
fstp dword [edi - 0xf0]
fild dword [esp + 0x30]
fmul qword [0x55be28]
call fcn.004aa410
fmul qword [0x4c5b80]
lea edx, [esi - 0xc]
mov dword [esp + 0x30], edx
fstp qword [esp + 0x28]
fild dword [esp + 0x30]
fmul qword [0x5539f8]
fdiv qword [0x55be30]
call fcn.004aa2e0
fdivr qword [esp + 0x28]
add esi, 2
add edi, 4
mov dword [esp + 0x18], esi
fstp dword [edi - 0x1c]
cmp esi, 0x37
jl 0x49b800
xor esi, esi
mov dword [esp + 0x10], esi
fild dword [esp + 0x10]
fmul qword [0x55be20]
call fcn.004aa2e0
fstp dword [esi*4 + 0x6d04bc]
inc esi
mov dword [esp + 0x10], esi
cmp esi, 9
jl 0x49b8f7
mov esi, 1
mov edi, 0x6d5310
mov dword [esp + 0x18], esi
fild dword [esp + 0x18]
fmul qword [0x5539f8]
fdiv qword [0x4c5ef8]
call fcn.004aa2e0
fdivr qword [0x4c5b80]
add esi, 2
add edi, 4
mov dword [esp + 0x18], esi
fstp dword [edi - 4]
cmp esi, 0x13
jl 0x49b925
mov esi, 1
mov edi, 0x6d1d7c
mov dword [esp + 0x18], esi
fild dword [esp + 0x18]
fmul qword [0x5539f8]
fdiv qword [0x556d20]
call fcn.004aa2e0
fdivr qword [0x4c5b80]
add esi, 2
add edi, 4
mov dword [esp + 0x18], esi
fstp dword [edi - 4]
cmp esi, 7
jl 0x49b960
fld qword [0x55be18]
call fcn.004aa2e0
fstp dword [0x6d2ffc]
fld qword [str.es_8R]
call fcn.004aa2e0
fstp dword [0x6d1e14]
mov ebp, 7
mov dword [esp + 0x18], ebp
mov esi, 0x6d5170
mov dword [esp + 0x10], 0x6c8360
lea edi, [ebp + 7]
jmp 0x49b9d0
lea eax, [ebp - 6]
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fmul qword [0x55be28]
call fcn.004aa410
fmul qword [0x4c5b80]
fstp qword [esp + 0x30]
fild dword [esp + 0x18]
fmul qword [0x5539f8]
fdiv qword [0x4c65d8]
call fcn.004aa2e0
fdivr qword [esp + 0x30]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], ebp
mov ebx, 6
fstp dword [ecx]
jmp 0x49ba20
fild dword [esp + 0x14]
fmul qword [0x55be28]
call fcn.004aa2e0
fstp dword [esi]
add dword [esp + 0x14], edi
add esi, 4
dec ebx
jne 0x49ba20
add dword [esp + 0x10], 4
add edi, 4
add ebp, 2
mov dword [esp + 0x18], ebp
cmp edi, 0x3e
jl 0x49b9d0
movss xmm0, dword [0x4c8bb0]
xor esi, esi
mov edi, str.___f_
mov edi, edi
mov edx, dword [edi]
test edx, edx
jle 0x49ba82
lea ecx, [edx - 1]
shr ecx, 1
mov eax, esi
inc ecx
mov edi, edi
fld dword [eax + 0x6c8240]
add eax, 8
dec ecx
fstp dword [eax + 0x6d4ee8]
jne 0x49ba70
cmp edx, 1
jle 0x49baa9
lea ecx, [edx - 2]
shr ecx, 1
mov eax, esi
inc ecx
nop
movss xmm1, dword [eax + 0x6c8244]
xorps xmm1, xmm0
movss dword [eax + 0x6d4ef4], xmm1
add eax, 8
dec ecx
jne 0x49ba90
add edi, 4
add esi, 0x90
cmp edi, 0x55bcf8
jl 0x49ba60
xor ebx, ebx
mov dword [esp + 0x10], ebx
fild dword [esp + 0x10]
fst qword [esp + 0x20]
fmul qword [0x5539f8]
fdiv qword [0x556d20]
call fcn.004ac130
fstp qword [esp + 0x18]
movsd xmm1, qword [esp + 0x18]
movsd xmm2, qword [0x4c5bf8]
movapd xmm0, xmm1
addsd xmm0, xmm2
divsd xmm2, xmm0
lea esi, [ebx*4]
cvtpd2ps xmm2, xmm2
movapd xmm3, xmm1
movss dword [esi + 0x6d5130], xmm2
movsd xmm2, qword [0x5584b8]
mulsd xmm1, xmm2
divsd xmm3, xmm0
divsd xmm1, xmm0
divsd xmm2, xmm0
xorps xmm0, xmm0
xor edi, edi
cvtsd2ss xmm3, xmm3
cvtpd2ps xmm1, xmm1
cvtpd2ps xmm0, xmm2
movss dword [esi + 0x6d2920], xmm3
movss dword [esi + 0x6d3080], xmm1
movss dword [esi + 0x6d46b0], xmm0
mov dword [esp + 0x10], edi
jmp 0x49bb60
fild dword [esp + 0x10]
fadd qword [0x4c5bf8]
fmul qword [0x55be40]
fld qword [0x4c6040]
fxch st(1)
call fcn.004aabb0
movsd xmm0, qword [0x4c5bf8]
movapd xmm1, xmm0
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x30], xmm0
test ebx, ebx
jle 0x49bbe2
fld qword [esp + 0x20]
test bl, 1
je 0x49bbc5
fadd qword [0x4c5bf8]
fmul qword [0x4c5b80]
call fcn.004aabb0
fstp qword [esp + 0x28]
movsd xmm1, qword [esp + 0x28]
movsd xmm0, qword [esp + 0x30]
jmp 0x49bbe4
fmul qword [0x4c5b80]
call fcn.004aabb0
fstp qword [esp + 0x30]
movsd xmm0, qword [esp + 0x30]
movsd xmm1, qword [esp + 0x28]
jmp 0x49bbe4
fstp st(0)
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm1
mulsd xmm1, qword [0x5584b8]
movss dword [esi + 0x6d3000], xmm2
cvtsd2ss xmm1, xmm1
inc edi
movss dword [esi + 0x6d1e18], xmm1
cvtpd2ps xmm2, xmm0
mulsd xmm0, qword [0x5584b8]
cvtpd2ps xmm0, xmm0
movss dword [esi + 0x6d5290], xmm2
movss dword [esi + 0x6d24a0], xmm0
add esi, 0x40
mov dword [esp + 0x10], edi
cmp edi, 2
jl 0x49bb60
inc ebx
mov dword [esp + 0x10], ebx
cmp ebx, 0x10
jl 0x49bac0
mov eax, 0x6d04e0
mov esi, 0x55b798
xor ebx, ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0x28], 0x6d2960
mov dword [esp + 0x18], 0x6d30c0
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x30], ebx
xor edx, edx
cmp dword [esp + 0x10], 3
mov dword [ebx + 0x6d1d88], eax
setl dl
xor edi, edi
xor ecx, ecx
lea ebx, [esi + 0x2e]
lea ebp, [edx + edx + 6]
test ebp, ebp
jle 0x49bcbc
movsx edx, word [ebx]
mov esi, edx
sar esi, 1
mov dword [eax], esi
mov dword [eax + 4], edi
mov dword [eax + 8], 3
mov dword [eax + 0xc], ecx
inc ecx
add eax, 0x10
add edi, edx
add ebx, 2
cmp ecx, ebp
jl 0x49bc95
mov esi, dword [esp + 0x14]
add esi, 0x7c
mov ecx, 5
movsx edx, word [esi]
sar edx, 1
mov dword [eax], edx
mov dword [eax + 4], edi
mov dword [eax + 8], 0
lea ebx, [ecx - 2]
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], edx
lea ebp, [edi + 1]
mov dword [eax + 0x14], ebp
mov dword [eax + 0x18], 1
mov dword [eax + 0x1c], ebx
mov dword [eax + 0x20], edx
lea edx, [edx + edx*2]
lea ebp, [edi + 2]
mov dword [eax + 0x24], ebp
mov dword [eax + 0x28], 2
mov dword [eax + 0x2c], ebx
lea edi, [edi + edx*2]
movsx edx, word [esi + 2]
sar edx, 1
mov dword [eax + 0x30], edx
mov dword [eax + 0x34], edi
mov dword [eax + 0x38], 0
lea ebx, [ecx - 1]
mov dword [eax + 0x3c], ebx
mov dword [eax + 0x40], edx
lea ebp, [edi + 1]
mov dword [eax + 0x44], ebp
mov dword [eax + 0x48], 1
mov dword [eax + 0x4c], ebx
mov dword [eax + 0x50], edx
lea edx, [edx + edx*2]
lea ebp, [edi + 2]
mov dword [eax + 0x54], ebp
mov dword [eax + 0x58], 2
mov dword [eax + 0x5c], ebx
lea edi, [edi + edx*2]
movsx edx, word [esi + 4]
sar edx, 1
mov dword [eax + 0x60], edx
mov dword [eax + 0x64], edi
mov dword [eax + 0x68], 0
mov dword [eax + 0x6c], ecx
mov dword [eax + 0x70], edx
lea ebx, [edi + 1]
mov dword [eax + 0x74], ebx
mov dword [eax + 0x78], 1
mov dword [eax + 0x7c], ecx
mov dword [eax + 0x80], edx
lea edx, [edx + edx*2]
lea ebx, [edi + 2]
mov dword [eax + 0x84], ebx
mov dword [eax + 0x88], 2
mov dword [eax + 0x8c], ecx
lea edi, [edi + edx*2]
movsx edx, word [esi + 6]
sar edx, 1
mov dword [eax + 0x90], edx
mov dword [eax + 0x94], edi
mov dword [eax + 0x98], 0
lea ebx, [ecx + 1]
mov dword [eax + 0x9c], ebx
mov dword [eax + 0xa0], edx
lea ebp, [edi + 1]
mov dword [eax + 0xa4], ebp
mov dword [eax + 0xa8], 1
mov dword [eax + 0xac], ebx
mov dword [eax + 0xb0], edx
lea edx, [edx + edx*2]
lea ebp, [edi + 2]
lea edi, [edi + edx*2]
movsx edx, word [esi + 8]
mov dword [eax + 0xb4], ebp
mov dword [eax + 0xb8], 2
mov dword [eax + 0xbc], ebx
sar edx, 1
mov dword [eax + 0xc0], edx
mov dword [eax + 0xc4], edi
mov dword [eax + 0xc8], 0
lea ebx, [ecx + 2]
mov dword [eax + 0xcc], ebx
mov dword [eax + 0xd0], edx
lea ebp, [edi + 1]
mov dword [eax + 0xd4], ebp
mov dword [eax + 0xd8], 1
mov dword [eax + 0xdc], ebx
mov dword [eax + 0xe0], edx
lea ebp, [edi + 2]
mov dword [eax + 0xe4], ebp
lea edx, [edx + edx*2]
add ecx, 5
mov dword [eax + 0xe8], 2
lea edi, [edi + edx*2]
mov dword [eax + 0xec], ebx
lea edx, [ecx - 2]
add eax, 0xf0
add esi, 0xa
cmp edx, 0xd
jl 0x49bcc4
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x14]
mov dword [ebx + 0x6d2f90], eax
mov eax, dword [esp + 0x18]
add ebp, 0x76
xor edx, edx
mov dword [ebx + 0x6d1d8c], eax
xor edi, edi
movsx ecx, word [ebp]
sar ecx, 1
mov dword [eax], ecx
mov dword [eax + 4], edx
mov dword [eax + 8], 0
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], ecx
lea esi, [edx + 1]
mov dword [eax + 0x14], esi
mov dword [eax + 0x18], 1
mov dword [eax + 0x1c], edi
mov dword [eax + 0x20], ecx
lea esi, [edx + 2]
mov dword [eax + 0x24], esi
mov dword [eax + 0x28], 2
mov dword [eax + 0x2c], edi
inc edi
add ebp, 2
add eax, 0x30
lea ecx, [ecx + ecx*2]
lea edx, [edx + ecx*2]
cmp edi, 0xd
jl 0x49bea2
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x14]
mov dword [ebx + 0x6d2f94], eax
mov dword [ebx + 0x6d1d90], edi
mov eax, edi
lea edx, [esi + 0x2e]
xor ecx, ecx
lea ebx, [ebx]
movsx ebp, word [edx]
sar ebp, 1
mov dword [eax], ebp
movsx ebp, word [edx + 2]
mov dword [eax + 4], ecx
sar ebp, 1
mov dword [eax + 8], ebp
lea ebp, [ecx + 1]
mov dword [eax + 0xc], ebp
add ecx, 2
add eax, 0x10
add edx, 4
cmp ecx, 0x16
jl 0x49bf10
inc dword [esp + 0x10]
add dword [esp + 0x18], 0x270
mov dword [ebx + 0x6d2f98], eax
mov eax, dword [esp + 0x20]
add esi, 0x90
add eax, 0x260
add edi, 0xb0
add ebx, 0xc
mov dword [esp + 0x14], esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], edi
mov dword [esp + 0x30], ebx
cmp esi, str.333333
jl 0x49bc76
mov dword [esp + 0x14], 0x55b7f2
mov esi, 0x6d5338
mov edi, 0x6d1a40
nop
mov ebx, dword [esp + 0x14]
add ebx, 0xffffffa6
mov ebp, 0x17
lea esp, [esp]
movsx ecx, word [ebx]
add ecx, 7
mov eax, 0x38e38e39
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
lea edx, [edx + eax + 1]
mov dword [edi], edx
cmp edx, 0x20
jle 0x49bfc6
mov dword [edi], 0x20
add ebx, 2
add edi, 4
dec ebp
jne 0x49bfa0
mov ebx, dword [esp + 0x14]
mov ebp, 0xe
jmp 0x49bfe0
movsx ecx, word [ebx]
dec ecx
mov eax, 0x38e38e39
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
lea edx, [edx + ecx + 1]
mov dword [esi], edx
cmp edx, 0x20
jle 0x49c004
mov dword [esi], 0x20
add ebx, 2
add esi, 4
dec ebp
jne 0x49bfe0
add dword [esp + 0x14], 0x90
cmp edi, 0x6d1d7c
jl 0x49bf90
xor edx, edx
mov ecx, 0x6d2524
jmp 0x49c030
xor esi, esi
mov eax, esi
or eax, 0x600
add eax, eax
add eax, eax
add eax, eax
mov edi, eax
or edi, edx
mov dword [ecx - 4], edi
mov edi, eax
or edi, edx
or edi, 0x40
mov dword [ecx], edi
mov edi, eax
or edi, edx
or edi, 0x80
mov dword [ecx + 4], edi
mov edi, eax
or edi, edx
or edi, 0xc0
mov dword [ecx + 8], edi
mov edi, eax
or edi, edx
or eax, edx
or edi, 0x100
or eax, 0x140
mov dword [ecx + 0xc], edi
mov dword [ecx + 0x10], eax
inc esi
add ecx, 0x18
cmp esi, 6
jl 0x49c032
inc edx
cmp ecx, 0x6d27f4
jl 0x49c030
xor edx, edx
mov ecx, 0x6d27f4
lea esp, [esp]
xor esi, esi
mov eax, esi
or eax, 0x800
add eax, eax
add eax, eax
add eax, eax
mov edi, eax
or edi, edx
mov dword [ecx - 4], edi
mov edi, eax
or edi, edx
or edi, 0x40
mov dword [ecx], edi
mov edi, eax
or edi, edx
or eax, edx
or edi, 0x80
or eax, 0xc0
mov dword [ecx + 4], edi
mov dword [ecx + 8], eax
inc esi
add ecx, 0x10
cmp esi, 4
jl 0x49c0a2
inc edx
cmp ecx, 0x6d28f4
jl 0x49c0a0
xor edx, edx
xor eax, eax
lea esp, [esp]
mov ecx, edx
or ecx, 0x5000
mov dword [eax + 0x6d28f0], ecx
mov ecx, edx
or ecx, 0xa000
mov dword [eax + 0x6d4ec0], ecx
mov ecx, edx
or ecx, 8
mov esi, ecx
or ecx, 0xa000
mov dword [eax + 0x6d4ec4], ecx
or esi, 0x5000
mov ecx, edx
mov dword [eax + 0x6d28f4], esi
or ecx, 0x10
mov esi, ecx
or esi, 0x5000
or ecx, 0xa000
mov dword [eax + 0x6d28f8], esi
mov dword [eax + 0x6d4ec8], ecx
add eax, 0xc
inc edx
cmp eax, 0x30
jl 0x49c0f0
xor esi, esi
mov ecx, 0x6d46f4
lea ebx, [ebx]
xor edi, edi
xor edx, edx
lea eax, [edx*8]
or eax, edi
add eax, eax
add eax, eax
add eax, eax
or eax, esi
mov dword [ecx - 4], eax
lea eax, [edx*8]
or eax, edi
add eax, eax
add eax, eax
add eax, eax
mov ebx, eax
or ebx, esi
or ebx, 0x200
mov dword [ecx], ebx
mov ebx, eax
or ebx, esi
or eax, esi
or ebx, 0x400
or eax, 0x600
mov dword [ecx + 4], ebx
mov dword [ecx + 8], eax
inc edx
add ecx, 0x10
cmp edx, 4
jl 0x49c164
inc edi
cmp edi, 5
jl 0x49c162
inc esi
cmp ecx, 0x6d4d34
jl 0x49c160
xor edx, edx
mov ecx, 0x6d4d34
lea esp, [esp]
xor esi, esi
mov eax, esi
or eax, 0x200
add eax, eax
add eax, eax
add eax, eax
mov edi, eax
or edi, edx
mov dword [ecx - 4], edi
mov edi, eax
or edi, edx
or edi, 0x40
mov dword [ecx], edi
mov edi, eax
or edi, edx
or eax, edx
or edi, 0x80
or eax, 0xc0
mov dword [ecx + 4], edi
mov dword [ecx + 8], eax
inc esi
add ecx, 0x10
cmp esi, 5
jl 0x49c1d2
inc edx
cmp ecx, 0x6d4ec4
jl 0x49c1d0
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret