Function at 0x10141b60
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x34
cdq
push esi
push edi
mov edi, ecx
push 0
push edx
push eax
mov ecx, dword [edi + 0x54800]
mov esi, dword [ecx]
call dword [esi + 0xc]
mov ecx, edi
call fcn.10135240
cmp eax, 0xff
ja 0x10141df7
or dword [edi + 0xf34], 0x10000
test eax, eax
je 0x10141de5
push ebx
push ebp
mov ebx, 0x4949
nop word [eax + eax]
mov ecx, dword [edi + 0x54800]
lea edx, [esp + 0x48]
dec eax
mov word [esp + 0x48], 0xffff
push 2
mov dword [esp + 0x44], eax
mov eax, dword [ecx]
push 1
push edx
call dword [eax + 8]
cmp word [edi + 0x54860], bx
jne 0x10141be5
movzx esi, byte [esp + 0x49]
movzx eax, byte [esp + 0x48]
jmp 0x10141bef
movzx esi, byte [esp + 0x48]
movzx eax, byte [esp + 0x49]
mov ecx, dword [edi + 0x54800]
lea edx, [esp + 0x10]
shl esi, 8
push 2
or esi, eax
mov word [esp + 0x14], 0xffff
mov eax, dword [ecx]
push 1
push edx
call dword [eax + 8]
cmp word [edi + 0x54860], bx
jne 0x10141c24
movzx ebp, byte [esp + 0x11]
movzx eax, byte [esp + 0x10]
jmp 0x10141c2e
movzx ebp, byte [esp + 0x10]
movzx eax, byte [esp + 0x11]
mov ecx, dword [edi + 0x54800]
shl ebp, 8
or ebp, eax
mov dword [esp + 0x34], ebp
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov dword [esp + 0x1c], eax
cmp esi, 0x100
jne 0x10141cfa
mov ecx, dword [edi + 0x54800]
lea eax, [esp + 0x14]
push 2
mov word [esp + 0x18], 0xffff
push 1
mov edx, dword [ecx]
push eax
call dword [edx + 8]
cmp word [edi + 0x54860], bx
jne 0x10141c84
movzx ecx, byte [esp + 0x15]
movzx eax, byte [esp + 0x14]
jmp 0x10141c8e
movzx ecx, byte [esp + 0x14]
movzx eax, byte [esp + 0x15]
shl cx, 8
lea edx, [esp + 0x18]
or cx, ax
mov word [esp + 0x18], 0xffff
movzx eax, cx
mov ecx, dword [edi + 0x54800]
push 2
mov word [edi + 0x10], ax
push 1
mov eax, dword [ecx]
push edx
call dword [eax + 8]
cmp word [edi + 0x54860], bx
jne 0x10141cdd
movzx ecx, byte [esp + 0x19]
movzx eax, byte [esp + 0x18]
shl cx, 8
or cx, ax
movzx eax, cx
mov word [edi + 0x12], ax
jmp 0x10141dbd
movzx ecx, byte [esp + 0x18]
movzx eax, byte [esp + 0x19]
shl cx, 8
or cx, ax
movzx eax, cx
mov word [edi + 0x12], ax
jmp 0x10141dbd
cmp esi, 0x121
jne 0x10141d38
mov ecx, edi
call fcn.1013c960
mov ecx, edi
mov word [edi + 0x14], ax
call fcn.1013c960
mov esi, dword [esp + 0x1c]
mov ecx, 0x10bc
mov word [edi + 0x16], ax
cmp ax, cx
jne 0x10141dc1
mov eax, 0x10bf
mov word [edi + 0x16], ax
jmp 0x10141dc1
cmp esi, 0x130
jne 0x10141d70
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
call dword [eax + 0x18]
mov ecx, dword [edi + 0x54800]
sar eax, 7
mov dword [edi + 0x5489c], eax
mov eax, dword [ecx]
call dword [eax + 0x18]
shr eax, 3
not eax
and eax, 1
mov word [edi + 0x5483e], ax
jmp 0x10141dbd
cmp esi, 0x131
jne 0x10141dff
mov dword [edi + 0x194], 9
lea esi, [edi + 0x1df]
mov ebx, 0x24
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
call dword [eax + 0x18]
mov ecx, 2
lea esi, [esi - 1]
cmp eax, ecx
cmovl ecx, eax
xor eax, eax
test ecx, ecx
cmovs ecx, eax
mov byte [esi + 1], cl
sub ebx, 1
jne 0x10141d91
mov ebx, 0x4949
mov esi, dword [esp + 0x1c]
mov ecx, dword [edi + 0x54800]
mov eax, dword [esp + 0x34]
push 0
add eax, esi
mov edx, dword [ecx]
push 0
push eax
call dword [edx + 0xc]
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x10141bb0
pop ebp
pop ebx
movzx eax, word [edi + 0x5489c]
mov cx, ax
shl word [edi + 0x14], cl
shr word [edi + 0x16], cl
pop edi
pop esi
add esp, 0x34
ret 4
cmp esi, 0x2ff0
jne 0x10141e37
xor esi, esi
nop dword [eax]
mov ecx, edi
call fcn.1013c960
movzx eax, ax
movd xmm0, eax
mov eax, esi
cvtdq2ps xmm0, xmm0
xor eax, 1
inc esi
movss dword [edi + eax*4 + 0x24ff4], xmm0
cmp esi, 4
jb 0x10141e10
jmp 0x10141dbd
cmp esi, 0x110
jne 0x10141e60
mov ecx, edi
call fcn.1013c960
mov ecx, edi
mov word [edi + 0xb6], ax
call fcn.1013c960
mov word [edi + 0xb4], ax
jmp 0x10141dbd
cmp esi, 0x111
jne 0x10141e89
mov ecx, edi
call fcn.1013c960
mov ecx, edi
mov word [edi + 0xba], ax
call fcn.1013c960
mov word [edi + 0xb8], ax
jmp 0x10141dbd
cmp esi, 0x122
jne 0x10141eee
mov ecx, str.DBP_for_GX680
lea eax, [edi + 0x104]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10141ec0
test dl, dl
je 0x10141ebc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10141ec0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10141ea0
xor eax, eax
jmp 0x10141ec5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10141dbd
mov ecx, edi
call fcn.1013c960
mov ecx, edi
call fcn.1013c960
mov ecx, edi
call fcn.1013c960
mov ecx, edi
call fcn.1013c960
jmp 0x10141dbd
cmp esi, 0x9650
jne 0x10141f38
mov ecx, edi
call fcn.1013c960
movzx eax, ax
mov ecx, edi
movsx esi, ax
call fcn.1013c960
movss xmm1, dword [0x103f9378]
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
maxss xmm1, xmm0
movd xmm0, esi
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [edi + 0xa60], xmm0
jmp 0x10141dbd
cmp esi, 0x2f00
jne 0x10141f9a
mov ecx, edi
call fcn.10135240
mov ebp, 6
cmp eax, ebp
cmovl ebp, eax
test ebp, ebp
jle 0x10141dbd
mov ebx, 0xa64c
nop
xor esi, esi
mov ecx, edi
call fcn.1013c960
movzx ecx, ax
mov eax, esi
xor eax, 1
inc esi
add eax, ebx
mov dword [edi + eax*4], ecx
cmp esi, 4
jb 0x10141f62
mov ecx, dword [edi + 0x54800]
push 1
push 0
push 8
mov eax, dword [ecx]
call dword [eax + 0xc]
add ebx, 4
sub ebp, 1
jne 0x10141f60
jmp 0x10141db8
cmp esi, 0x2000
jne 0x10141fc5
xor esi, esi
mov ecx, edi
call fcn.1013c960
movzx ecx, ax
mov eax, esi
xor eax, 1
inc esi
mov dword [edi + eax*4 + 0x298b0], ecx
cmp esi, 4
jb 0x10141fa4
jmp 0x10141dbd
cmp esi, 0x2100
jne 0x10141ff1
xor esi, esi
nop
mov ecx, edi
call fcn.1013c960
movzx ecx, ax
mov eax, esi
xor eax, 1
inc esi
mov dword [edi + eax*4 + 0x29420], ecx
cmp esi, 4
jb 0x10141fd0
jmp 0x10141dbd
cmp esi, 0x2200
jne 0x10142021
xor esi, esi
nop dword [eax + eax]
mov ecx, edi
call fcn.1013c960
movzx ecx, ax
mov eax, esi
xor eax, 1
inc esi
mov dword [edi + eax*4 + 0x29440], ecx
cmp esi, 4
jb 0x10142000
jmp 0x10141dbd
cmp esi, 0x2300
jne 0x10142051
xor esi, esi
nop dword [eax + eax]
mov ecx, edi
call fcn.1013c960
movzx ecx, ax
mov eax, esi
xor eax, 1
inc esi
mov dword [edi + eax*4 + 0x29450], ecx
cmp esi, 4
jb 0x10142030
jmp 0x10141dbd
cmp esi, 0x2301
jne 0x10142081
xor esi, esi
nop dword [eax + eax]
mov ecx, edi
call fcn.1013c960
movzx ecx, ax
mov eax, esi
xor eax, 1
inc esi
mov dword [edi + eax*4 + 0x29460], ecx
cmp esi, 4
jb 0x10142060
jmp 0x10141dbd
cmp esi, 0x2302
jne 0x101420b1
xor esi, esi
nop dword [eax + eax]
mov ecx, edi
call fcn.1013c960
movzx ecx, ax
mov eax, esi
xor eax, 1
inc esi
mov dword [edi + eax*4 + 0x29480], ecx
cmp esi, 4
jb 0x10142090
jmp 0x10141dbd
cmp esi, 0x2310
jne 0x101420e1
xor esi, esi
nop dword [eax + eax]
mov ecx, edi
call fcn.1013c960
movzx ecx, ax
mov eax, esi
xor eax, 1
inc esi
mov dword [edi + eax*4 + 0x29490], ecx
cmp esi, 4
jb 0x101420c0
jmp 0x10141dbd
cmp esi, 0x2400
jne 0x10142111
xor esi, esi
nop dword [eax + eax]
mov ecx, edi
call fcn.1013c960
movzx ecx, ax
mov eax, esi
xor eax, 1
inc esi
mov dword [edi + eax*4 + 0x293c0], ecx
cmp esi, 4
jb 0x101420f0
jmp 0x10141dbd
cmp esi, 0x2410
jne 0x10142141
xor esi, esi
nop dword [eax + eax]
mov ecx, edi
call fcn.1013c960
movzx ecx, ax
mov eax, esi
xor eax, 1
inc esi
mov dword [edi + eax*4 + 0x293d0], ecx
cmp esi, 4
jb 0x10142120
jmp 0x10141dbd
cmp esi, 0xc000
jne 0x10141dbd
movsx eax, word [edi + 0x54860]
mov ecx, edi
mov dword [esp + 0x3c], eax
mov word [edi + 0x54860], bx
call fcn.10135240
cmp eax, 0x2710
jbe 0x10142182
mov ecx, edi
call fcn.10135240
cmp eax, 0x2710
jbe 0x10142182
mov ecx, edi
call fcn.10135240
mov ecx, edi
mov word [edi + 0x16], ax
call fcn.10135240
lea edx, [edi + 0x104]
mov word [edi + 0x14], ax
mov ecx, str.X_A3
mov eax, edx
nop
mov bl, byte [eax]
cmp bl, byte [ecx]
jne 0x101421c0
test bl, bl
je 0x101421bc
mov bl, byte [eax + 1]
cmp bl, byte [ecx + 1]
jne 0x101421c0
add eax, 2
add ecx, 2
test bl, bl
jne 0x101421a0
xor eax, eax
jmp 0x101421c5
sbb eax, eax
or eax, 1
test eax, eax
je 0x10142292
mov ecx, str.X_A10
mov eax, edx
mov bl, byte [eax]
cmp bl, byte [ecx]
jne 0x101421f4
test bl, bl
je 0x101421f0
mov bl, byte [eax + 1]
cmp bl, byte [ecx + 1]
jne 0x101421f4
add eax, 2
add ecx, 2
test bl, bl
jne 0x101421d4
xor eax, eax
jmp 0x101421f9
sbb eax, eax
or eax, 1
test eax, eax
je 0x10142292
mov ecx, str.X_A5
mov eax, edx
mov bl, byte [eax]
cmp bl, byte [ecx]
jne 0x10142228
test bl, bl
je 0x10142224
mov bl, byte [eax + 1]
cmp bl, byte [ecx + 1]
jne 0x10142228
add eax, 2
add ecx, 2
test bl, bl
jne 0x10142208
xor eax, eax
jmp 0x1014222d
sbb eax, eax
or eax, 1
test eax, eax
je 0x10142292
mov eax, str.X_A20
mov cl, byte [edx]
cmp cl, byte [eax]
jne 0x10142256
test cl, cl
je 0x10142252
mov cl, byte [edx + 1]
cmp cl, byte [eax + 1]
jne 0x10142256
add edx, 2
add eax, 2
test cl, cl
jne 0x10142236
xor eax, eax
jmp 0x1014225b
sbb eax, eax
or eax, 1
test eax, eax
je 0x10142292
mov esi, dword [esp + 0x1c]
mov eax, ebp
shr eax, 1
mov ebx, 0x4949
mov dword [edi + 0x548d0], eax
mov eax, dword [esp + 0x3c]
mov dword [edi + 0x548c8], esi
mov dword [edi + 0x548cc], 0
mov word [edi + 0x54860], ax
jmp 0x10141dc1
mov ecx, dword [edi + 0x54800]
mov eax, dword [esp + 0x1c]
push 0
add eax, 0x200
mov dword [esp + 0x2c], 0
mov edx, dword [ecx]
push 0
push eax
call dword [edx + 0xc]
lea ebx, [edi + 0x2a394]
mov dword [esp + 0x30], 0x2a
mov ecx, edi
call fcn.10135240
mov ecx, edi
mov esi, eax
call fcn.10135240
mov ecx, edi
mov ebp, eax
call fcn.10135240
add eax, eax
mov ecx, edi
mov dword [esp + 0x20], eax
call fcn.10135240
mov ecx, edi
mov dword [esp + 0x24], eax
call fcn.10135240
mov ecx, edi
mov dword [esp + 0x2c], eax
call fcn.10135240
mov edx, dword [esp + 0x20]
add eax, eax
mov dword [esp + 0x38], eax
test ebp, ebp
je 0x10142362
mov ecx, dword [esp + 0x28]
cmp ecx, 0xff
jge 0x10142362
movd xmm0, ebp
inc ecx
mov ebp, dword [esp + 0x24]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x28], ecx
movss dword [ebx - 4], xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movss dword [ebx], xmm0
movd xmm0, ebp
cvtdq2ps xmm0, xmm0
movss dword [ebx + 4], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebx + 8], xmm0
movd xmm0, dword [esp + 0x2c]
cvtdq2ps xmm0, xmm0
movss dword [ebx + 0xc], xmm0
add ebx, 0x14
jmp 0x10142366
mov ebp, dword [esp + 0x24]
cmp esi, 0x46
je 0x101423c3
mov eax, dword [0x10415cf4]
mov ecx, 1
cmp eax, ecx
jle 0x101423c3
nop dword [eax]
cmp dword [ecx*4 + 0x10415d98], esi
je 0x10142392
add ecx, 2
cmp ecx, eax
jl 0x10142380
jmp 0x101423c3
mov ecx, dword [ecx*4 + 0x10415d94]
lea eax, [ecx + 0x2939]
add eax, eax
add ecx, ecx
mov dword [edi + eax*8], edx
mov eax, dword [esp + 0x38]
mov dword [edi + ecx*8 + 0x29394], ebp
mov dword [edi + ecx*8 + 0x29398], eax
mov eax, dword [esp + 0x2c]
mov dword [edi + ecx*8 + 0x2939c], eax
sub dword [esp + 0x30], 1
jne 0x101422c1
mov eax, dword [esp + 0x3c]
mov ebx, 0x4949
mov esi, dword [esp + 0x1c]
mov word [edi + 0x54860], ax
jmp 0x10141dc1