Function at 0x10144f10
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.10131c40
cmp eax, 0xff
ja 0x10145796
or dword [edi + 0xf34], 0x10000
test eax, eax
je 0x10145784
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 0x10144f95
movzx ecx, byte [esp + 0x49]
movzx eax, byte [esp + 0x48]
jmp 0x10144f9f
movzx ecx, byte [esp + 0x48]
movzx eax, byte [esp + 0x49]
shl cx, 8
lea edx, [esp + 0x10]
or cx, ax
mov word [esp + 0x10], 0xffff
movzx esi, cx
mov ecx, dword [edi + 0x54800]
push 2
push 1
push edx
mov eax, dword [ecx]
call dword [eax + 8]
cmp word [edi + 0x54860], bx
jne 0x10144fd9
movzx ecx, byte [esp + 0x11]
movzx eax, byte [esp + 0x10]
jmp 0x10144fe3
movzx ecx, byte [esp + 0x10]
movzx eax, byte [esp + 0x11]
shl cx, 8
or cx, ax
movzx eax, cx
mov ecx, dword [edi + 0x54800]
movzx ebp, ax
mov dword [esp + 0x3c], ebp
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov ebx, eax
mov eax, 0x100
mov dword [esp + 0x38], ebx
cmp si, ax
jne 0x101450c0
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]
mov ebx, 0x4949
cmp word [edi + 0x54860], bx
jne 0x1014504a
movzx ecx, byte [esp + 0x15]
movzx eax, byte [esp + 0x14]
jmp 0x10145054
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 0x101450a3
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 0x1014575e
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 0x1014575e
mov eax, 0x121
cmp si, ax
jne 0x10145101
mov ecx, edi
call fcn.10131be0
mov ecx, edi
mov word [edi + 0x14], ax
call fcn.10131be0
mov ecx, 0x10bc
mov word [edi + 0x16], ax
mov ebx, 0x4949
cmp ax, cx
jne 0x1014575e
mov eax, 0x10bf
mov word [edi + 0x16], ax
jmp 0x1014575e
mov eax, 0x130
cmp si, ax
jne 0x1014513e
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 0x10145759
mov eax, 0x131
cmp si, ax
jne 0x1014518c
mov dword [edi + 0x194], 9
lea esi, [edi + 0x1df]
mov ebx, 0x24
nop dword [eax]
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 0x10145160
jmp 0x10145759
mov eax, 0x2ff0
cmp si, ax
jne 0x101451c2
xor esi, esi
mov ecx, edi
call fcn.10131be0
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 0x10145198
jmp 0x10145759
mov eax, 0x110
cmp si, ax
jne 0x101451ed
mov ecx, edi
call fcn.10131be0
mov ecx, edi
mov word [edi + 0xb6], ax
call fcn.10131be0
mov word [edi + 0xb4], ax
jmp 0x10145759
mov eax, 0x111
cmp si, ax
jne 0x10145218
mov ecx, edi
call fcn.10131be0
mov ecx, edi
mov word [edi + 0xba], ax
call fcn.10131be0
mov word [edi + 0xb8], ax
jmp 0x10145759
mov eax, 0x122
cmp si, ax
jne 0x1014527e
mov ecx, str.DBP_for_GX680
lea eax, [edi + 0x104]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10145250
test dl, dl
je 0x1014524c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10145250
add eax, 2
add ecx, 2
test dl, dl
jne 0x10145230
xor eax, eax
jmp 0x10145255
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10145759
mov ecx, edi
call fcn.10131be0
mov ecx, edi
call fcn.10131be0
mov ecx, edi
call fcn.10131be0
mov ecx, edi
call fcn.10131be0
jmp 0x10145759
mov eax, 0x9650
cmp si, ax
jne 0x101452ca
mov ecx, edi
call fcn.10131be0
movzx eax, ax
mov ecx, edi
movsx esi, ax
call fcn.10131be0
movss xmm1, dword [0x103ef910]
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 0x10145759
mov eax, 0x2f00
cmp si, ax
jne 0x1014532c
mov ecx, edi
call fcn.10131c40
mov ebp, 6
cmp eax, ebp
cmovl ebp, eax
test ebp, ebp
jle 0x10145759
mov ebx, 0xa64c
xor esi, esi
mov ecx, edi
call fcn.10131be0
movzx ecx, ax
mov eax, esi
xor eax, 1
inc esi
add eax, ebx
mov dword [edi + eax*4], ecx
cmp esi, 4
jb 0x101452f4
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 0x101452f2
jmp 0x10145759
mov eax, 0x2000
cmp si, ax
jne 0x10145359
xor esi, esi
mov ecx, edi
call fcn.10131be0
movzx ecx, ax
mov eax, esi
xor eax, 1
inc esi
mov dword [edi + eax*4 + 0x298b0], ecx
cmp esi, 4
jb 0x10145338
jmp 0x10145759
mov eax, 0x2100
cmp si, ax
jne 0x10145386
xor esi, esi
mov ecx, edi
call fcn.10131be0
movzx ecx, ax
mov eax, esi
xor eax, 1
inc esi
mov dword [edi + eax*4 + 0x29420], ecx
cmp esi, 4
jb 0x10145365
jmp 0x10145759
mov eax, 0x2200
cmp si, ax
jne 0x101453b3
xor esi, esi
mov ecx, edi
call fcn.10131be0
movzx ecx, ax
mov eax, esi
xor eax, 1
inc esi
mov dword [edi + eax*4 + 0x29440], ecx
cmp esi, 4
jb 0x10145392
jmp 0x10145759
mov eax, 0x2300
cmp si, ax
jne 0x101453e1
xor esi, esi
nop
mov ecx, edi
call fcn.10131be0
movzx ecx, ax
mov eax, esi
xor eax, 1
inc esi
mov dword [edi + eax*4 + 0x29450], ecx
cmp esi, 4
jb 0x101453c0
jmp 0x10145759
mov eax, 0x2301
cmp si, ax
jne 0x10145411
xor esi, esi
nop dword [eax]
mov ecx, edi
call fcn.10131be0
movzx ecx, ax
mov eax, esi
xor eax, 1
inc esi
mov dword [edi + eax*4 + 0x29460], ecx
cmp esi, 4
jb 0x101453f0
jmp 0x10145759
mov eax, 0x2302
cmp si, ax
jne 0x10145441
xor esi, esi
nop dword [eax]
mov ecx, edi
call fcn.10131be0
movzx ecx, ax
mov eax, esi
xor eax, 1
inc esi
mov dword [edi + eax*4 + 0x29480], ecx
cmp esi, 4
jb 0x10145420
jmp 0x10145759
mov eax, 0x2310
cmp si, ax
jne 0x10145471
xor esi, esi
nop dword [eax]
mov ecx, edi
call fcn.10131be0
movzx ecx, ax
mov eax, esi
xor eax, 1
inc esi
mov dword [edi + eax*4 + 0x29490], ecx
cmp esi, 4
jb 0x10145450
jmp 0x10145759
mov eax, 0x2400
cmp si, ax
jne 0x101454a1
xor esi, esi
nop dword [eax]
mov ecx, edi
call fcn.10131be0
movzx ecx, ax
mov eax, esi
xor eax, 1
inc esi
mov dword [edi + eax*4 + 0x293c0], ecx
cmp esi, 4
jb 0x10145480
jmp 0x10145759
mov eax, 0x2410
cmp si, ax
jne 0x101454d1
xor esi, esi
nop dword [eax]
mov ecx, edi
call fcn.10131be0
movzx ecx, ax
mov eax, esi
xor eax, 1
inc esi
mov dword [edi + eax*4 + 0x293d0], ecx
cmp esi, 4
jb 0x101454b0
jmp 0x10145759
mov eax, 0xc000
cmp si, ax
jne 0x10145759
movzx eax, word [edi + 0x54860]
mov ecx, edi
mov dword [esp + 0x34], eax
mov eax, 0x4949
mov word [edi + 0x54860], ax
call fcn.10131c40
cmp eax, 0x2710
jbe 0x10145519
mov ecx, edi
call fcn.10131c40
cmp eax, 0x2710
jbe 0x10145519
mov ecx, edi
call fcn.10131c40
mov ecx, edi
mov word [edi + 0x16], ax
call fcn.10131c40
lea esi, [edi + 0x104]
mov word [edi + 0x14], ax
mov ecx, str.X_A3
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10145555
test dl, dl
je 0x10145551
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10145555
add eax, 2
add ecx, 2
test dl, dl
jne 0x10145535
xor eax, eax
jmp 0x1014555a
sbb eax, eax
or eax, 1
test eax, eax
je 0x1014561a
mov ecx, str.X_A10
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10145590
test dl, dl
je 0x1014558c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10145590
add eax, 2
add ecx, 2
test dl, dl
jne 0x10145570
xor eax, eax
jmp 0x10145595
sbb eax, eax
or eax, 1
test eax, eax
je 0x1014561a
mov ecx, str.X_A5
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x101455c4
test dl, dl
je 0x101455c0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x101455c4
add eax, 2
add ecx, 2
test dl, dl
jne 0x101455a4
xor eax, eax
jmp 0x101455c9
sbb eax, eax
or eax, 1
test eax, eax
je 0x1014561a
mov eax, str.X_A20
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x101455f2
test cl, cl
je 0x101455ee
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x101455f2
add esi, 2
add eax, 2
test cl, cl
jne 0x101455d2
xor eax, eax
jmp 0x101455f7
sbb eax, eax
or eax, 1
test eax, eax
je 0x1014561a
mov eax, ebp
mov dword [edi + 0x548c8], ebx
shr eax, 1
mov dword [edi + 0x548cc], 0
mov dword [edi + 0x548d0], eax
jmp 0x1014574e
mov ecx, dword [edi + 0x54800]
lea eax, [ebx + 0x200]
push 0
push 0
push eax
mov edx, dword [ecx]
mov dword [esp + 0x30], 0
call dword [edx + 0xc]
lea ebp, [edi + 0x2a394]
mov dword [esp + 0x2c], 0x2a
mov ecx, edi
call fcn.10131c40
mov ecx, edi
mov esi, eax
call fcn.10131c40
mov ecx, edi
mov ebx, eax
call fcn.10131c40
add eax, eax
mov ecx, edi
mov dword [esp + 0x1c], eax
call fcn.10131c40
mov ecx, edi
mov dword [esp + 0x20], eax
call fcn.10131c40
mov ecx, edi
mov dword [esp + 0x28], eax
call fcn.10131c40
mov edx, dword [esp + 0x1c]
add eax, eax
mov dword [esp + 0x30], eax
test ebx, ebx
je 0x101456e8
mov ecx, dword [esp + 0x24]
cmp ecx, 0xff
jge 0x101456e8
movd xmm0, ebx
inc ecx
mov ebx, dword [esp + 0x20]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x24], ecx
movss dword [ebp - 4], xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movss dword [ebp], xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
movss dword [ebp + 4], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebp + 8], xmm0
movd xmm0, dword [esp + 0x28]
cvtdq2ps xmm0, xmm0
movss dword [ebp + 0xc], xmm0
add ebp, 0x14
jmp 0x101456ec
mov ebx, dword [esp + 0x20]
cmp esi, 0x46
je 0x10145743
mov eax, dword [0x10408764]
mov ecx, 1
cmp eax, ecx
jle 0x10145743
nop
cmp dword [ecx*4 + 0x10408808], esi
je 0x10145712
add ecx, 2
cmp ecx, eax
jl 0x10145700
jmp 0x10145743
mov ecx, dword [ecx*4 + 0x10408804]
lea eax, [ecx + 0x2939]
add eax, eax
add ecx, ecx
mov dword [edi + eax*8], edx
mov eax, dword [esp + 0x30]
mov dword [edi + ecx*8 + 0x29394], ebx
mov dword [edi + ecx*8 + 0x29398], eax
mov eax, dword [esp + 0x28]
mov dword [edi + ecx*8 + 0x2939c], eax
sub dword [esp + 0x2c], 1
jne 0x10145646
mov eax, dword [esp + 0x34]
mov word [edi + 0x54860], ax
mov ebx, 0x4949
mov ecx, dword [edi + 0x54800]
mov eax, dword [esp + 0x38]
add eax, dword [esp + 0x3c]
push 0
mov edx, dword [ecx]
push 0
push eax
call dword [edx + 0xc]
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x10144f60
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