Function at 0x4b8eb0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x34
mov ecx, dword [esp + 0x40]
push esi
mov esi, dword [esp + 0x3c]
push edi
mov edi, dword [esp + 0x44]
push 0
mov eax, dword [esi]
mov dword [esp + 0xc], 0xffffffff
lea edx, [edi + ecx - 4]
mov ecx, dword [esi + 4]
push edx
push ecx
mov word [esp + 0x18], 0x410
mov word [esp + 0x1a], 0x45f3
call dword [eax + 8]
push esi
call fcn.004a6950
mov edx, dword [esi]
add eax, edi
push 0
push eax
mov eax, dword [esi + 4]
push eax
call dword [edx + 8]
push esi
call fcn.004a68b0
and eax, 0xffff
add esp, 0x20
cmp eax, 0x64
jg 0x4b9591
mov ecx, eax
dec eax
test ecx, ecx
je 0x4b9591
inc eax
push ebx
push ebp
mov dword [esp + 0x48], eax
push esi
call fcn.004a68b0
mov di, ax
push esi
and edi, 0xffff
call fcn.004a6950
mov edx, dword [esi]
mov ebx, eax
mov eax, dword [esi + 4]
push eax
call dword [edx + 0x18]
mov ebp, dword [esi]
add esp, 0xc
add eax, 4
push 0
push esi
mov dword [esp + 0x20], eax
call fcn.004a6950
mov edx, dword [esp + 0x54]
mov ecx, dword [esi + 4]
add esp, 4
add eax, edx
push eax
push ecx
call dword [ebp + 8]
mov edx, edi
add esp, 0xc
sar edx, 8
add edx, 8
or edx, 8
cmp edx, 0x38
jne 0x4b8f93
mov ecx, dword [esi + 4]
mov eax, dword [esi]
push ebx
push ecx
call dword [eax + 0x18]
add esp, 4
push eax
push esi
call fcn.004b8eb0
add esp, 0xc
cmp edi, 0x810
jne 0x4b8fb6
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push 1
lea eax, [esi + 0x6515]
push 0x40
push eax
push ecx
call dword [edx]
add esp, 0x10
jmp 0x4b956d
cmp edi, 0x80a
jne 0x4b9004
mov eax, dword [esi + 4]
mov edx, dword [esi]
lea edi, [esi + 0x6455]
push 1
push 0x40
push edi
push eax
call dword [edx]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [esi + 4]
mov edx, dword [esi]
not ecx
add ecx, 0xffffffc0
push 1
push ecx
push eax
call dword [edx + 8]
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push 1
lea edx, [esi + 0x6495]
push 0x40
push edx
push eax
call dword [ecx]
add esp, 0x2c
jmp 0x4b956d
cmp edi, 0x1810
jne 0x4b902d
mov edx, dword [esi + 4]
mov ecx, dword [esi]
push 1
push 0xc
push edx
call dword [ecx + 8]
push esi
call fcn.004a6950
add esp, 0x10
mov dword [esi + 0x6610], eax
jmp 0x4b956d
cmp edi, 0x1835
jne 0x4b9049
push esi
call fcn.004a6950
add esp, 4
mov dword [esi + 0x65c0], eax
jmp 0x4b956d
cmp edi, 0x2007
jne 0x4b906e
mov ecx, dword [esi + 4]
mov eax, dword [esi]
push ecx
call dword [eax + 0x18]
add esp, 4
mov dword [esi + 0x6590], eax
mov dword [esi + 0x659c], ebx
jmp 0x4b956d
cmp edi, 0x1818
jne 0x4b90e6
push esi
call fcn.004a6950
push esi
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0x40000000
call fcn.004a6950
push eax
call fcn.004a69c0
fchs
fld qword [esp + 0x28]
fxch st(1)
call sub.MSVCRT.dll__CIpow
fstp dword [esi + 0x6564]
push esi
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0x40000000
call fcn.004a6950
push eax
call fcn.004a69c0
fmul dword [0x5565c0]
fld qword [esp + 0x38]
fxch st(1)
add esp, 0x14
call sub.MSVCRT.dll__CIpow
fstp dword [esi + 0x6568]
jmp 0x4b956d
cmp edi, 0x102a
jne 0x4b9229
push esi
call fcn.004a6950
push esi
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0x40000000
call fcn.004a68b0
and eax, 0xffff
mov dword [esp + 0x58], eax
fild dword [esp + 0x58]
fmul dword [0x574c6c]
fsub dword [0x5567b0]
fld qword [esp + 0x34]
fxch st(1)
call sub.MSVCRT.dll__CIpow
fmul dword [0x556988]
push esi
fstp dword [esi + 0x6560]
call fcn.004a68b0
push esi
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0x40000000
call fcn.004a68b0
movsx edx, ax
mov dword [esp + 0x60], edx
fild dword [esp + 0x60]
fmul dword [0x574c68]
fld qword [esp + 0x44]
fxch st(1)
call sub.MSVCRT.dll__CIpow
fstp dword [esi + 0x6568]
push esi
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0x40000000
call fcn.004a68b0
movsx eax, ax
neg eax
mov dword [esp + 0x64], eax
fild dword [esp + 0x64]
fmul dword [0x574c6c]
fld qword [esp + 0x50]
fxch st(1)
call sub.MSVCRT.dll__CIpow
fstp dword [esi + 0x6564]
push esi
call fcn.004a68b0
push esi
call fcn.004a68b0
and eax, 0xffff
add esp, 0x1c
cmp eax, 0x11
mov dword [esp + 0x10], eax
jle 0x4b91db
mov dword [esp + 0x10], 0
mov edx, dword [esi + 4]
mov ecx, dword [esi]
push 1
push 0x20
push edx
call dword [ecx + 8]
fld dword [esi + 0x6564]
fcomp qword [0x574c60]
add esp, 0xc
fnstsw ax
test ah, 0x41
jne 0x4b956d
push esi
call fcn.004a68b0
add esp, 4
and eax, 0xffff
mov dword [esp + 0x50], eax
fild dword [esp + 0x50]
fmul dword [0x574c5c]
fstp dword [esi + 0x6564]
jmp 0x4b956d
cmp edi, 0x102c
jne 0x4b92c2
push esi
call fcn.004a68b0
add esp, 4
cmp ax, 0x200
mov eax, dword [esi]
push 1
jbe 0x4b9283
mov ecx, dword [esi + 4]
push 0x76
push ecx
call dword [eax + 8]
add esp, 0xc
xor edi, edi
push esi
call fcn.004a68b0
and eax, 0xffff
mov edx, edi
mov dword [esp + 0x54], eax
add esp, 4
fild dword [esp + 0x50]
xor edx, 2
inc edi
cmp edi, 4
fstp dword [esi + edx*4 + 0xe6bc]
jl 0x4b9256
jmp 0x4b956d
mov ecx, dword [esi + 4]
push 0x62
push ecx
call dword [eax + 8]
add esp, 0xc
xor edi, edi
push esi
call fcn.004a68b0
mov edx, edi
and eax, 0xffff
xor edx, 2
mov dword [esp + 0x54], eax
fild dword [esp + 0x54]
sar edx, 1
add esp, 4
xor edx, edi
inc edi
fstp dword [esi + edx*4 + 0xe6bc]
cmp edi, 4
jl 0x4b9291
jmp 0x4b956d
cmp edi, 0x32
jne 0x4b93f5
cmp ebx, 0x300
jne 0x4b931f
mov ecx, dword [esi + 4]
mov eax, dword [esi]
push 1
push 0x48
push ecx
call dword [eax + 8]
add esp, 0xc
xor edi, edi
push esi
call fcn.004a68b0
and eax, 0xffff
mov edx, edi
mov dword [esp + 0x54], eax
add esp, 4
fild dword [esp + 0x50]
sar edx, 1
xor edx, edi
inc edi
fdivr dword [0x574c58]
cmp edi, 4
fstp dword [esi + edx*4 + 0xe6bc]
jl 0x4b92e5
mov eax, dword [esp + 0x10]
test eax, eax
jmp 0x4b93e0
fld dword [esi + 0xe6bc]
fcomp dword [0x5565c4]
fnstsw ax
test ah, 0x40
je 0x4b956d
push esi
call fcn.004a68b0
add esp, 4
cmp ax, word [esp + 0x14]
jne 0x4b9376
lea eax, [esi + 0x6495]
push str.Pro1
push eax
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
mov eax, str.012346000000000000
jne 0x4b9369
mov eax, str.01345:000000006008
mov ebx, dword [esp + 0x10]
movsx eax, byte [eax + ebx]
sub eax, 0x2e
jmp 0x4b9390
mov ebx, dword [esp + 0x10]
movsx eax, byte [ebx + str.023457000000006000]
sub eax, 0x30
xor ecx, ecx
mov word [esp + 0x16], cx
mov word [esp + 0x14], cx
mov ecx, dword [esi]
lea edx, [eax*8 + 0x4e]
mov eax, dword [esi + 4]
push 1
push edx
push eax
call dword [ecx + 8]
add esp, 0xc
xor edi, edi
push esi
call fcn.004a68b0
mov ecx, edi
mov edx, edi
and ecx, 1
xor edx, 2
sar edx, 1
xor ax, word [esp + ecx*2 + 0x18]
add esp, 4
xor edx, edi
and eax, 0xffff
inc edi
mov dword [esp + 0x50], eax
cmp edi, 4
fild dword [esp + 0x50]
fstp dword [esi + edx*4 + 0xe6bc]
jl 0x4b93a8
test ebx, ebx
jne 0x4b956d
mov dword [esi + 0xe6bc], 0xbf800000
jmp 0x4b956d
cmp edi, 0x10a9
jne 0x4b945e
cmp ebx, 0x42
jle 0x4b9414
mov eax, dword [esp + 0x10]
movsx ecx, byte [eax + str.0134567028]
sub ecx, 0x30
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x10]
mov edx, dword [esi]
push 1
lea ecx, [eax*8 + 2]
mov eax, dword [esi + 4]
push ecx
push eax
call dword [edx + 8]
add esp, 0xc
xor edi, edi
push esi
call fcn.004a68b0
and eax, 0xffff
mov ecx, edi
mov dword [esp + 0x54], eax
add esp, 4
fild dword [esp + 0x50]
sar ecx, 1
xor ecx, edi
inc edi
cmp edi, 4
fstp dword [esi + ecx*4 + 0xe6bc]
jl 0x4b9430
jmp 0x4b956d
cmp edi, 0x1030
jne 0x4b9488
mov ecx, dword [esp + 0x10]
mov edx, 0x18040
sar edx, cl
test dl, 1
je 0x4b956d
push esi
call fcn.004b8dc0
add esp, 4
jmp 0x4b956d
cmp edi, 0x1031
jne 0x4b94b8
push esi
call fcn.004a68b0
push esi
call fcn.004a68b0
push esi
mov word [esi + 0x65fa], ax
call fcn.004a68b0
add esp, 0xc
mov word [esi + 0x65f8], ax
jmp 0x4b956d
cmp edi, 0x5029
jne 0x4b94f0
mov eax, ebx
and ebx, 0xffff
sar eax, 0x10
mov dword [esp + 0x50], eax
cmp ebx, 2
fild dword [esp + 0x50]
fst dword [esi + 0x656c]
jne 0x4b956b
fmul dword [0x574c6c]
fstp dword [esi + 0x656c]
jmp 0x4b956d
cmp edi, 0x5813
jne 0x4b9509
push ebx
call fcn.004a69c0
fstp dword [esi + 0x6558]
add esp, 4
jmp 0x4b956d
cmp edi, 0x5814
jne 0x4b9522
push ebx
call fcn.004a69c0
fstp dword [esi + 0x655c]
add esp, 4
jmp 0x4b956d
cmp edi, 0x5817
jne 0x4b9532
mov dword [esi + 0x6574], ebx
jmp 0x4b956d
cmp edi, 0x5834
jne 0x4b9542
mov dword [esi + 0x6584], ebx
jmp 0x4b956d
cmp edi, 0x580e
jne 0x4b9552
mov dword [esi + 0x6570], ebx
jmp 0x4b956d
cmp edi, 0x180e
jne 0x4b956d
push esi
call fcn.004a6950
add esp, 4
mov dword [esi + 0x6570], eax
jmp 0x4b956d
fstp st(0)
mov edx, dword [esp + 0x18]
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push 0
push edx
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x54]
add esp, 0xc
dec eax
mov dword [esp + 0x48], eax
jne 0x4b8f24
pop ebp
pop ebx
pop edi
pop esi
add esp, 0x34
ret