Function at 0x45a3b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47fd34
mov eax, dword fs:[0]
push eax
sub esp, 0x100
mov eax, dword [0x4b3570]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [edi + 0x10]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x108], esi
mov dword [ebp - 0xf8], esi
cmp dword [eax + 0x10], 0
jne 0x45ad69
movss xmm0, dword [edi]
lea eax, [ebp - 0xe8]
push 1
push ecx
movss dword [esp], xmm0
push eax
call fcn.00459b90
movss xmm0, dword [edi + 4]
lea eax, [ebp - 0x88]
push 0
push ecx
movss dword [esp], xmm0
mov ecx, edi
push eax
mov dword [ebp - 4], 0
call fcn.00459b90
movss xmm0, dword [edi]
xorps xmm1, xmm1
comiss xmm0, xmm1
mov ecx, 0x4e
mov eax, 0x53
mov byte [ebp - 4], 1
movss xmm0, dword [edi + 4]
cmovae eax, ecx
mov ecx, 0x45
comiss xmm0, xmm1
mov byte [ebp - 0xec], al
mov eax, 0x57
cmovae eax, ecx
mov ecx, dword [ebp - 0xd8]
mov byte [ebp - 0x100], al
mov eax, bind
sub eax, ecx
mov dword [ebp - 0xf8], ecx
cmp eax, 7
jb 0x45ad90
cmp dword [ebp - 0xd4], 0x10
lea eax, [ebp - 0xe8]
mov esi, 0xf
mov dword [ebp - 0x30], 0
cmovae eax, dword [ebp - 0xe8]
lea edi, [ebp - 0x40]
mov dword [ebp - 0x104], eax
xorps xmm0, xmm0
lea eax, [ecx + 7]
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0xf0], eax
movups xmmword [ebp - 0x40], xmm0
cmp eax, esi
jbe 0x45a50c
mov esi, eax
or esi, 0xf
cmp esi, 0x7fffffff
jbe 0x45a4e5
mov esi, bind
jmp 0x45a4ef
mov eax, 0x16
cmp esi, eax
cmovb esi, eax
lea eax, [esi + 1]
push eax
lea ecx, [ebp - 0x40]
call fcn.0041d410
mov ecx, dword [ebp - 0xf8]
mov edi, eax
mov eax, dword [ebp - 0xf0]
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x30], eax
mov eax, dword [str._GPGLL_]
mov dword [ebp - 0x2c], esi
mov dword [edi], eax
mov ax, word [0x48a3f0]
mov word [edi + 4], ax
mov al, byte [0x48a3f2]
push ecx
push dword [ebp - 0x104]
mov byte [edi + 6], al
lea eax, [edi + 7]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0xf8]
add esp, 0xc
mov byte [edi + eax + 7], 0
push 1
push 0x485d88
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 2
call fcn.0041d4d0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x28], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x18], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push dword [ebp - 0xec]
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 3
call fcn.0041ec70
movups xmm0, xmmword [ebp - 0x28]
mov byte [ebp - 0x28], 0
movups xmmword [ebp - 0xd0], xmm0
movq xmm0, qword [ebp - 0x18]
movq qword [ebp - 0xc0], xmm0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
push 1
push 0x485d88
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 4
call fcn.0041d4d0
mov dword [ebp - 0x60], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x70], xmm0
mov dword [ebp - 0x5c], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x70], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x60], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
cmp dword [ebp - 0x74], 0x10
lea eax, [ebp - 0x88]
push dword [ebp - 0x78]
cmovae eax, dword [ebp - 0x88]
lea ecx, [ebp - 0x70]
push eax
mov byte [ebp - 4], 5
call fcn.0041d4d0
mov dword [ebp - 0x48], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x58], xmm0
mov dword [ebp - 0x44], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x58], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x48], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 6
push 1
push 0x485d88
lea ecx, [ebp - 0x58]
call fcn.0041d4d0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0xa0], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x90], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push dword [ebp - 0x100]
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 7
call fcn.0041ec70
movups xmm0, xmmword [ebp - 0xa0]
mov byte [ebp - 0xa0], 0
movups xmmword [ebp - 0xb8], xmm0
movq xmm0, qword [ebp - 0x90]
movq qword [ebp - 0xa8], xmm0
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0xf
push 3
push 0x48a3e8
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 8
call fcn.0041d4d0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x28], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x18], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov ecx, dword [ebp - 0xa4]
mov byte [ebp - 4], 0xa
cmp ecx, 0x10
jb 0x45a75e
mov edx, dword [ebp - 0xb8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45a754
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45a88c
push ecx
push edx
call fcn.00471dc9
add esp, 8
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xa4], 0xf
mov byte [ebp - 0xb8], 0
mov ecx, dword [ebp - 0x44]
mov byte [ebp - 4], 0xc
cmp ecx, 0x10
jb 0x45a7b1
mov edx, dword [ebp - 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45a7a7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45a88c
push ecx
push edx
call fcn.00471dc9
add esp, 8
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0xf
mov byte [ebp - 0x58], 0
mov ecx, dword [ebp - 0x5c]
mov byte [ebp - 4], 0xd
cmp ecx, 0x10
jb 0x45a7fb
mov edx, dword [ebp - 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45a7f1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45a88c
push ecx
push edx
call fcn.00471dc9
add esp, 8
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
mov byte [ebp - 0x70], 0
mov ecx, dword [ebp - 0xbc]
mov byte [ebp - 4], 0xe
cmp ecx, 0x10
jb 0x45a847
mov edx, dword [ebp - 0xd0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45a83d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45a88c
push ecx
push edx
call fcn.00471dc9
add esp, 8
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xbc], 0xf
mov byte [ebp - 0xd0], 0
mov ecx, dword [ebp - 0x2c]
mov byte [ebp - 4], 0x10
cmp ecx, 0x10
jb 0x45a89c
mov edx, dword [ebp - 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45a892
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x45a892
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.00471dc9
add esp, 8
mov esi, dword [ebp - 0x18]
xor edx, edx
mov edi, dword [ebp - 0x14]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
lea ecx, [edx + 1]
mov byte [ebp - 0x40], 0
mov dword [ebp - 0xf8], edx
mov dword [ebp - 0xec], edi
cmp esi, ecx
jbe 0x45a8eb
nop dword [eax]
cmp edi, 0x10
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
movsx eax, byte [eax + ecx]
inc ecx
xor edx, eax
cmp ecx, esi
jb 0x45a8d0
mov dword [ebp - 0xf8], edx
cmp esi, edi
jae 0x45a919
lea eax, [esi + 1]
cmp edi, 0x10
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
mov word [eax + esi], 0x2a
mov edx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x100], edx
jmp 0x45aa1c
mov edx, bind
mov eax, edx
sub eax, esi
cmp eax, 1
jb 0x45ad90
lea eax, [esi + 1]
mov edi, eax
mov dword [ebp - 0x100], eax
or edi, 0xf
cmp edi, edx
jbe 0x45a941
mov edi, edx
jmp 0x45a96e
mov ecx, dword [ebp - 0xec]
mov eax, ecx
shr eax, 1
mov dword [ebp - 0xf0], eax
mov eax, edx
mov edx, dword [ebp - 0xf0]
sub eax, edx
cmp ecx, eax
jbe 0x45a966
mov edi, bind
jmp 0x45a96e
lea eax, [ecx + edx]
cmp edi, eax
cmovb edi, eax
lea eax, [edi + 1]
push eax
lea ecx, [ebp - 0x28]
call fcn.0041d410
cmp dword [ebp - 0xec], 0x10
lea ecx, [esi + 1]
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], edi
push esi
jb 0x45a9fa
push dword [ebp - 0x28]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0xfc]
add esp, 0xc
mov edx, dword [ebp - 0xec]
inc edx
mov word [eax + esi], 0x2a
mov eax, dword [ebp - 0x28]
mov ecx, eax
cmp edx, 0x1000
jb 0x45a9df
mov eax, dword [ecx - 4]
add edx, 0x23
sub ecx, eax
mov dword [ebp - 0xf0], eax
lea eax, [ecx - 4]
cmp eax, 0x1f
ja 0x45ad57
mov eax, dword [ebp - 0xf0]
push edx
push eax
call fcn.00471dc9
mov ecx, dword [ebp - 0xfc]
add esp, 8
mov edx, dword [ebp - 0x100]
mov dword [ebp - 0x28], ecx
jmp 0x45aa22
lea ecx, [ebp - 0x28]
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [ebp - 0xfc]
add esp, 0xc
mov edx, dword [ebp - 0x100]
mov dword [ebp - 0x28], ecx
mov word [ecx + esi], 0x2a
mov dword [ebp - 0xfc], ecx
mov eax, dword [ebp - 0xf8]
mov ecx, 0x30
sar eax, 4
mov esi, 0x37
cmp eax, 0xa
cmovge ecx, esi
add cl, al
mov dword [ebp - 0xf0], ecx
mov ecx, dword [ebp - 0xfc]
cmp edx, edi
jae 0x45aa7e
lea eax, [edx + 1]
cmp edi, 0x10
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x28]
cmovae eax, ecx
mov ecx, dword [ebp - 0xf0]
mov byte [eax + edx], cl
mov byte [eax + edx + 1], 0
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov dword [ebp - 0xec], ecx
jmp 0x45ab84
mov ecx, bind
mov eax, ecx
sub eax, edx
cmp eax, 1
jb 0x45ad90
lea eax, [edx + 1]
mov esi, eax
mov dword [ebp - 0xec], eax
or esi, 0xf
cmp esi, ecx
jbe 0x45aaa6
mov esi, ecx
jmp 0x45aabe
mov edx, edi
mov eax, ecx
shr edx, 1
sub eax, edx
cmp edi, eax
jbe 0x45aab6
mov esi, ecx
jmp 0x45aabe
lea eax, [edx + edi]
cmp esi, eax
cmovb esi, eax
lea eax, [esi + 1]
push eax
lea ecx, [ebp - 0x28]
call fcn.0041d410
mov ecx, dword [ebp - 0xec]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x100]
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x14], esi
push ecx
cmp edi, 0x10
jb 0x45ab54
push dword [ebp - 0xfc]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0x104]
inc edi
mov ecx, dword [ebp - 0x100]
add esp, 0xc
mov edx, dword [ebp - 0xf0]
mov byte [eax + ecx], dl
mov byte [eax + ecx + 1], 0
mov eax, dword [ebp - 0xfc]
mov ecx, eax
cmp edi, 0x1000
jb 0x45ab42
mov eax, dword [ecx - 4]
add edi, 0x23
sub ecx, eax
mov dword [ebp - 0xfc], eax
lea eax, [ecx - 4]
cmp eax, 0x1f
ja 0x45ad57
mov eax, dword [ebp - 0xfc]
push edi
push eax
call fcn.00471dc9
mov edi, dword [ebp - 0x104]
add esp, 8
jmp 0x45ab7b
mov edi, dword [ebp - 0x104]
lea eax, [ebp - 0x28]
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0x100]
add esp, 0xc
mov ecx, dword [ebp - 0xf0]
mov byte [edi + eax], cl
mov byte [edi + eax + 1], 0
mov ecx, dword [ebp - 0xec]
mov dword [ebp - 0x28], edi
mov eax, dword [ebp - 0xf8]
and eax, 0xf
cmp eax, 0xa
sbb dl, dl
and dl, 0xf9
add dl, 0x37
add dl, al
mov byte [ebp - 0xf1], dl
cmp ecx, esi
jae 0x45abc0
lea eax, [ecx + 1]
cmp esi, 0x10
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x28]
cmovae eax, edi
mov byte [ecx + eax], dl
mov byte [ecx + eax + 1], 0
jmp 0x45acb8
mov edx, bind
mov eax, edx
sub eax, ecx
cmp eax, 1
jb 0x45ad90
lea eax, [ecx + 1]
mov ecx, eax
mov dword [ebp - 0x104], eax
or ecx, 0xf
cmp ecx, edx
jbe 0x45abe8
mov ecx, edx
jmp 0x45ac00
mov eax, esi
shr eax, 1
sub edx, eax
cmp esi, edx
jbe 0x45abf9
mov ecx, bind
jmp 0x45ac00
add eax, esi
cmp ecx, eax
cmovb ecx, eax
lea eax, [ecx + 1]
mov dword [ebp - 0xf8], ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.0041d410
mov edx, eax
mov eax, dword [ebp - 0x104]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0xf0], edx
mov dword [ebp - 0x14], eax
cmp esi, 0x10
jb 0x45ac8d
mov ecx, dword [ebp - 0xec]
push ecx
push edi
push edx
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0xec]
inc esi
mov edx, dword [ebp - 0xf0]
add esp, 0xc
mov cl, byte [ebp - 0xf1]
mov byte [eax + edx], cl
mov byte [eax + edx + 1], 0
mov eax, edi
cmp esi, 0x1000
jb 0x45ac7b
mov edi, dword [eax - 4]
add esi, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45ad57
push esi
push edi
call fcn.00471dc9
mov eax, dword [ebp - 0xf0]
add esp, 8
jmp 0x45acb5
mov esi, dword [ebp - 0xec]
lea eax, [ebp - 0x28]
push esi
push eax
push edx
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0xf0]
add esp, 0xc
mov cl, byte [ebp - 0xf1]
mov byte [esi + eax], cl
mov byte [esi + eax + 1], 0
mov dword [ebp - 0x28], eax
mov esi, dword [ebp - 0x108]
xorps xmm0, xmm0
mov ecx, dword [ebp - 0x74]
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
movups xmm0, xmmword [ebp - 0x28]
movups xmmword [esi], xmm0
movq xmm0, qword [ebp - 0x18]
movq qword [esi + 0x10], xmm0
cmp ecx, 0x10
jb 0x45ad16
mov edx, dword [ebp - 0x88]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45ad0c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45ad57
push ecx
push edx
call fcn.00471dc9
add esp, 8
mov ecx, dword [ebp - 0xd4]
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0xf
mov byte [ebp - 0x88], 0
cmp ecx, 0x10
jb 0x45ad71
mov edx, dword [ebp - 0xe8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45ad5d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x45ad5d
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.00471dc9
add esp, 8
jmp 0x45ad71
push eax
mov ecx, esi
call fcn.00414470
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0047202b
mov esp, ebp
pop ebp
ret 4
call fcn.0041d3e0
int3