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

Disassembly:
sub esp, 0xd4
push ebp
push esi
mov esi, dword [esp + 0xe0]
push edi
xor edi, edi
mov eax, dword [esi]
mov dword [esp + 0x14], edi
cmp eax, edi
jne 0x10015fb3
push 0x324
call fcn.100f0c67
mov ebp, eax
mov dword [esi], ebp
mov dword [ebp], edi
mov dword [ebp + 4], edi
mov dword [ebp + 8], edi
mov dword [ebp + 0xc], 1
mov eax, dword [0x1010db44]
lea esi, [ebp + 0x20]
mov dword [ebp + 0x220], eax
mov ecx, dword [0x1010db40]
mov dword [ebp + 0x230], ecx
mov dl, byte [0x102dbcec]
mov byte [ebp + 0x240], dl
mov ecx, dword [str.c1a38567492b]
lea eax, [ebp + 0x280]
push esi
mov dword [eax], ecx
mov edx, dword [0x1010db34]
mov dword [eax + 4], edx
mov ecx, dword [0x1010db38]
mov dword [eax + 8], ecx
mov dl, byte [0x1010db3c]
lea ecx, [ebp + 0x290]
mov byte [eax + 0xc], dl
mov al, byte [0x102dbcec]
mov byte [esi], al
mov edx, dword [str._NONE_]
mov dword [ecx], edx
mov ax, word [0x1010db2c]
mov word [ecx + 4], ax
mov dl, byte [0x1010db2e]
mov byte [ecx + 6], dl
mov al, byte [0x102dbcec]
mov byte [ebp + 0x2d0], al
mov dword [ebp + 0x2f0], edi
mov dword [ebp + 0x2f8], edi
mov dword [ebp + 0x2fc], edi
mov dword [ebp + 0x300], edi
mov dword [ebp + 0x304], edi
mov dword [ebp + 0x308], edi
mov dword [ebp + 0x30c], edi
call fcn.10014ac0
add esp, 8
test eax, eax
je 0x10015497
or eax, 0xffffffff
pop edi
mov dword [ebp + 4], eax
pop esi
pop ebp
add esp, 0xd4
ret
push 0x1010b034
push esi
call fcn.100f0710
mov esi, eax
add esp, 8
cmp esi, edi
jne 0x100154bd
mov eax, 0xfffffffe
pop edi
mov dword [ebp + 4], eax
pop esi
pop ebp
add esp, 0xd4
ret
push ebx
push 2
push 0
push esi
call fcn.100f0626
push esi
call fcn.100f04a3
mov edi, eax
lea ecx, [edi + 3]
push ecx
call fcn.100f0c67
push 0
mov ebx, eax
push 0
push esi
mov dword [esp + 0x5c], ebx
call fcn.100f0626
push esi
push edi
push 1
push ebx
call fcn.100f1fc2
push esi
mov byte [ebx + edi], 0
call fcn.100f0426
push 0xc
lea edx, [esp + 0x7c]
push ebx
push edx
call fcn.100f1710
mov eax, dword [str.sdionlySDION]
mov ecx, dword [0x1010db1c]
mov edx, dword [0x1010db20]
mov dword [esp + 0x60], eax
mov al, byte [0x1010db24]
add esp, 0x40
mov byte [esp + 0x2c], al
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
xor eax, eax
mov cl, byte [esp + eax + 0x20]
mov dl, byte [esp + eax + 0x44]
xor dl, cl
mov byte [esp + eax + 0x44], dl
inc eax
cmp eax, 0xc
jl 0x10015535
push 4
lea edx, [esp + 0x48]
push str.KEY
push edx
call fcn.100f1e20
add esp, 0xc
test eax, eax
jne 0x10015592
lea eax, [esp + 0x44]
push 0xc
push eax
push ebx
call fcn.100f1710
mov ecx, 0xc
add esp, 0xc
cmp edi, ecx
mov eax, ecx
jle 0x10015592
mov dl, byte [esp + eax + 0x43]
dec eax
xor byte [ecx + ebx], dl
test eax, eax
jne 0x1001558d
mov eax, 0xc
inc ecx
cmp ecx, edi
jl 0x1001557c
mov al, byte [ebx]
mov edi, ebx
test al, al
mov dword [esp + 0x10], 0
je 0x100156e6
push 0x1010db0c
push edi
call fcn.100f1810
mov ebx, eax
mov al, byte [edi]
add esp, 8
cmp al, 0x20
mov dword [esp + 0x30], ebx
je 0x10015680
cmp al, 0x23
je 0x10015680
push 5
push str.LICTO
push edi
call fcn.100f1e20
add esp, 0xc
test eax, eax
jne 0x1001566e
mov al, byte [edi + 5]
lea esi, [edi + 6]
cmp al, 0x20
jne 0x100155fb
push esi
call fcn.100f0da1
add esp, 4
mov dword [esp + 0x10], eax
push 0x1010bcc8
push esi
call fcn.100f16d0
add esi, eax
push 0x1010bcc8
push esi
call fcn.100f1810
add esi, eax
push 0x1010bcc8
push esi
call fcn.100f16d0
add esi, eax
push 0x1010bcc8
push esi
call fcn.100f1810
add esi, eax
push 0x1010bcc8
push esi
call fcn.100f16d0
add esi, eax
add esp, 0x28
cmp byte [esi], 0x22
jne 0x1001564c
push 0x1010db00
inc esi
jmp 0x10015651
push 0x1010bcc8
push esi
call fcn.100f1810
mov ecx, dword [esp + 0x20]
add esp, 8
inc eax
add ecx, eax
mov eax, dword [ebp + 8]
inc eax
mov dword [esp + 0x18], ecx
mov dword [ebp + 8], eax
jmp 0x10015671
inc dword [ebp]
add edi, ebx
mov al, byte [edi]
cmp al, 0xa
je 0x1001567d
cmp al, 0xd
jne 0x100156d9
inc edi
jmp 0x10015673
push str.ORDER
push edi
call fcn.100f0e40
mov esi, eax
add esp, 8
test esi, esi
je 0x100156ca
add esi, 6
push 0x1010daf4
push esi
call fcn.100f16d0
add esi, eax
push str.__t_n_r
push esi
call fcn.100f1810
mov ebx, eax
push ebx
push esi
lea esi, [ebp + 0x2d0]
push esi
call fcn.100f1710
mov byte [esi + ebx], 0
mov ebx, dword [esp + 0x4c]
add esp, 0x1c
add edi, ebx
mov al, byte [edi]
cmp al, 0xa
je 0x100156d6
cmp al, 0xd
jne 0x100156d9
inc edi
jmp 0x100156cc
cmp byte [edi], 0
jne 0x100155a6
mov ebx, dword [esp + 0x3c]
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x10]
cmp ecx, eax
jne 0x1001573e
test eax, eax
mov dword [ebp + 0xc], 1
je 0x10015722
mov ecx, dword [esp + 0x18]
add ecx, eax
mov dword [esp + 0x18], ecx
add ecx, 4
push ecx
call fcn.100f0c67
mov dword [ebp + 0x2f0], eax
mov cl, byte [0x102dbcec]
add esp, 4
mov byte [eax], cl
jmp 0x1001577a
push 4
call fcn.100f0c67
mov dword [ebp + 0x2f0], eax
mov dx, word [0x1010daf4]
add esp, 4
mov word [eax], dx
jmp 0x1001577a
push 0x40
mov dword [ebp + 0xc], 0
call fcn.100f0c67
mov ecx, 8
mov esi, str._INVALID_LICTO_setting___count_
mov edi, eax
mov dword [ebp + 0x2f0], eax
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov edi, dword [ebp + 0x2f0]
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x18], ecx
mov eax, dword [ebp]
test eax, eax
je 0x100158cd
lea eax, [eax*4 + 4]
push eax
call fcn.100f0c67
mov ecx, dword [ebp]
mov dword [ebp + 0x2f8], eax
lea edx, [ecx*4 + 4]
push edx
call fcn.100f0c67
mov dword [ebp + 0x2fc], eax
mov eax, dword [ebp]
lea ecx, [eax*4 + 4]
push ecx
call fcn.100f0c67
mov edx, dword [ebp]
mov dword [ebp + 0x300], eax
lea eax, [edx*4 + 4]
push eax
call fcn.100f0c67
mov ecx, dword [ebp]
mov dword [ebp + 0x304], eax
lea edx, [ecx*4 + 4]
push edx
call fcn.100f0c67
mov dword [ebp + 0x308], eax
mov eax, dword [ebp]
lea ecx, [eax*4 + 4]
push ecx
call fcn.100f0c67
mov dword [ebp + 0x30c], eax
mov eax, dword [ebp]
add esp, 0x18
xor esi, esi
test eax, eax
jle 0x1001587d
push 0x40
call fcn.100f0c67
mov edx, dword [ebp + 0x2f8]
push 0x10
mov dword [edx + esi*4], eax
call fcn.100f0c67
mov ecx, dword [ebp + 0x2fc]
push 0x10
mov dword [ecx + esi*4], eax
call fcn.100f0c67
mov edx, dword [ebp + 0x300]
push 0x40
mov dword [edx + esi*4], eax
call fcn.100f0c67
mov ecx, dword [ebp + 0x304]
push 0x14
mov dword [ecx + esi*4], eax
call fcn.100f0c67
mov edx, dword [ebp + 0x308]
push 0x14
mov dword [edx + esi*4], eax
call fcn.100f0c67
mov ecx, dword [ebp + 0x30c]
add esp, 0x18
mov dword [ecx + esi*4], eax
mov eax, dword [ebp]
inc esi
cmp esi, eax
jl 0x10015812
mov edx, dword [ebp + 0x2f8]
mov dword [edx + esi*4], 0
mov eax, dword [ebp + 0x2fc]
mov dword [eax + esi*4], 0
mov ecx, dword [ebp + 0x300]
mov dword [ecx + esi*4], 0
mov edx, dword [ebp + 0x304]
mov dword [edx + esi*4], 0
mov eax, dword [ebp + 0x308]
mov dword [eax + esi*4], 0
mov ecx, dword [ebp + 0x30c]
mov dword [ecx + esi*4], 0
jmp 0x100158d4
mov dword [ebp + 4], 0xfffffffb
mov al, byte [ebx]
mov esi, ebx
test al, al
mov dword [esp + 0x14], esi
je 0x10015f79
mov dword [esp + 0x1c], 0
push 0x1010db0c
push esi
call fcn.100f1810
mov cl, byte [esi]
add esp, 8
cmp cl, 0x20
mov dword [esp + 0x30], eax
je 0x10015f55
cmp cl, 0x23
je 0x10015f55
push 5
push str.LICTO
push esi
call fcn.100f1e20
add esp, 0xc
test eax, eax
push 0x1010bcc8
jne 0x10015c9d
mov ebx, dword [esp + 0x18]
push ebx
call fcn.100f1810
mov esi, eax
lea edx, [esp + 0x3c]
push esi
push ebx
push edx
call fcn.100f1710
add ebx, 6
push 0x1010bcc8
push ebx
mov byte [esp + esi + 0x50], 0
call fcn.100f16d0
add ebx, eax
push 0x1010bcc8
push ebx
call fcn.100f1810
add ebx, eax
push 0x1010bcc8
push ebx
call fcn.100f16d0
add ebx, eax
push 0x1010bcc8
push ebx
call fcn.100f1810
add ebx, eax
push 0x1010bcc8
push ebx
call fcn.100f16d0
add ebx, eax
add esp, 0x3c
cmp byte [ebx], 0x22
jne 0x10015a3b
inc ebx
push 0x1010db00
push ebx
call fcn.100f1810
add eax, ebx
or ecx, 0xffffffff
mov dword [esp + 0x18], eax
mov edi, ebx
mov byte [eax], 0
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, dword [ebp + 0x2f0]
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x1010b4e0
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, dword [ebp + 0x2f0]
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0xa4]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov ebx, dword [esp + 0x10]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov byte [ebx], 0x22
jmp 0x10015ade
push 0x1010bcc8
push ebx
call fcn.100f1810
mov cl, byte [eax + ebx]
add eax, ebx
mov byte [esp + 0x28], cl
mov dword [esp + 0x18], eax
mov byte [eax], 0
or ecx, 0xffffffff
mov edi, ebx
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, dword [ebp + 0x2f0]
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x1010b4e0
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, dword [ebp + 0x2f0]
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0xa4]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov ebx, dword [esp + 0x10]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov cl, byte [esp + 0x20]
mov byte [ebx], cl
inc ebx
push 0x1010bcc8
push ebx
call fcn.100f16d0
add ebx, eax
push str.__t_n_r
push ebx
call fcn.100f1810
mov edx, eax
mov edi, ebx
or ecx, 0xffffffff
add esp, 0x10
mov al, byte [edx + ebx]
mov byte [edx + ebx], 0
mov byte [esp + 0x20], al
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
lea esi, [esp + 0x74]
sub edi, ecx
mov eax, ecx
mov dword [esp + 0x10], esi
mov esi, edi
mov edi, dword [esp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov cl, byte [esp + 0x20]
lea edi, [esp + 0x34]
mov byte [edx + ebx], cl
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 5
jne 0x10015b62
mov edx, dword [ebp + 8]
lea eax, [esp + 0x54]
push edx
push 0x1010d9b4
push eax
call fcn.100f0f37
add esp, 0xc
jmp 0x10015b6e
mov cx, word [0x1010bcc4]
mov word [esp + 0x54], cx
lea edx, [esp + 0xa4]
push 0xc
lea eax, [esp + 0x68]
push edx
push eax
call fcn.100f1710
lea edi, [esp + 0xb0]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 0xc
jge 0x10015bb7
mov edx, 0xc
lea eax, [ebp + 0x280]
sub edx, ecx
push edx
push eax
lea eax, [esp + ecx + 0x6c]
push eax
call fcn.100f1710
add esp, 0xc
lea ecx, [esp + 0x34]
mov byte [esp + 0x70], 0
push ecx
call fcn.100161c0
lea esi, [ebp + 0x230]
push esi
call fcn.10016180
lea edx, [esp + 0x5c]
push edx
call fcn.100161c0
lea eax, [esp + 0xb0]
push eax
call fcn.100161c0
lea ecx, [esp + 0xb4]
lea edx, [esp + 0x64]
push ecx
push edx
lea edi, [ebp + 0x220]
push 0x1010d9ac
push edi
lea eax, [esp + 0x54]
push esi
lea ecx, [esp + 0xb8]
push eax
push ecx
call fcn.100139d0
lea edx, [esp + 0x90]
lea eax, [esp + 0xc0]
push edx
lea ecx, [esp + 0xd4]
push eax
lea edx, [esp + 0x88]
push ecx
push edx
push 0x1010d9ac
push edi
lea eax, [esp + 0x78]
push esi
lea ecx, [esp + 0xcc]
push eax
push ecx
call fcn.10013b00
add esp, 0x50
lea esi, [esp + 0x74]
lea eax, [esp + 0x84]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x10015c84
test cl, cl
je 0x10015c80
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x10015c84
add eax, 2
add esi, 2
test cl, cl
jne 0x10015c5c
xor eax, eax
jmp 0x10015c89
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x10015f33
mov dword [ebp + 0xc], 0
jmp 0x10015f33
mov edi, dword [esp + 0x18]
push edi
call fcn.100f1810
lea edx, [eax + edi]
or ecx, 0xffffffff
push 0x1010bcc8
mov al, byte [edx]
mov byte [edx], 0
mov byte [esp + 0x2c], al
xor eax, eax
repne scasb al, byte es:[edi]
mov ebx, dword [ebp + 0x2f8]
not ecx
sub edi, ecx
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x28]
mov esi, edi
mov edi, dword [esp + 0x1c]
mov eax, ecx
shr ecx, 2
mov edi, dword [edi + ebx]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov cl, byte [esp + 0x2c]
mov edi, edx
push edi
mov byte [edi], cl
call fcn.100f16d0
add edi, eax
push 0x1010bcc8
push edi
call fcn.100f1810
lea edx, [eax + edi]
or ecx, 0xffffffff
push 0x1010bcc8
mov al, byte [edx]
mov byte [edx], 0
mov byte [esp + 0x3c], al
xor eax, eax
repne scasb al, byte es:[edi]
mov esi, dword [ebp + 0x2fc]
not ecx
sub edi, ecx
mov dword [esp + 0x2c], esi
mov esi, edi
mov edi, dword [esp + 0x2c]
mov eax, ecx
mov edi, dword [ebx + edi]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov cl, byte [esp + 0x3c]
mov edi, edx
push edi
mov byte [edi], cl
call fcn.100f16d0
add edi, eax
push 0x1010bcc8
push edi
call fcn.100f1810
lea edx, [eax + edi]
or ecx, 0xffffffff
mov al, byte [edx]
mov byte [edx], 0
mov byte [esp + 0x48], al
xor eax, eax
repne scasb al, byte es:[edi]
mov esi, dword [ebp + 0x300]
not ecx
sub edi, ecx
mov dword [esp + 0x38], esi
mov esi, edi
mov edi, dword [esp + 0x38]
mov eax, ecx
mov edi, dword [edi + ebx]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 0x1010bcc8
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov cl, byte [esp + 0x4c]
mov edi, edx
push edi
mov byte [edi], cl
call fcn.100f16d0
add edi, eax
push 0x1010bcc8
push edi
call fcn.100f1810
lea edx, [eax + edi]
or ecx, 0xffffffff
push 0x1010bcc8
mov al, byte [edx]
mov byte [edx], 0
mov byte [esp + 0x5c], al
xor eax, eax
repne scasb al, byte es:[edi]
mov esi, dword [ebp + 0x304]
not ecx
sub edi, ecx
mov dword [esp + 0x4c], esi
mov esi, edi
mov edi, dword [esp + 0x4c]
mov eax, ecx
mov edi, dword [ebx + edi]
mov ebx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov cl, byte [esp + 0x60]
mov byte [ebx], cl
call fcn.100f16d0
add esp, 0x40
add ebx, eax
push str.__t_n_r
push ebx
call fcn.100f1810
mov dl, byte [eax + ebx]
mov dword [esp + 0x48], eax
mov byte [eax + ebx], 0
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
add esp, 8
mov byte [esp + 0x20], dl
repne scasb al, byte es:[edi]
mov edx, dword [ebp + 0x30c]
mov eax, dword [esp + 0x1c]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
mov edi, dword [eax + edi]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [esp + 0x40]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov cl, byte [esp + 0x20]
mov esi, 0x1010d9a0
mov byte [edx + ebx], cl
mov ecx, dword [ebp + 0x300]
mov edi, dword [ecx + eax]
mov ecx, edi
mov dl, byte [ecx]
mov bl, byte [esi]
mov al, dl
cmp dl, bl
jne 0x10015e8f
test al, al
je 0x10015e8b
mov dl, byte [ecx + 1]
mov bl, byte [esi + 1]
mov al, dl
cmp dl, bl
jne 0x10015e8f
add ecx, 2
add esi, 2
test al, al
jne 0x10015e67
xor eax, eax
jmp 0x10015e94
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x10015ed0
mov esi, 0x1010bcc4
mov eax, edi
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x10015ec7
test cl, cl
je 0x10015ec3
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x10015ec7
add eax, 2
add esi, 2
test cl, cl
jne 0x10015e9f
xor eax, eax
jmp 0x10015ecc
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10015ee0
mov eax, dword [0x1010d9ac]
mov dword [edi], eax
mov ecx, dword [0x1010d9b0]
mov dword [edi + 4], ecx
mov edx, dword [ebp + 0x304]
mov esi, dword [esp + 0x1c]
mov ecx, dword [ebp + 0x2fc]
mov eax, dword [esi + edx]
mov edx, dword [esi + ecx]
push eax
mov eax, dword [ebp + 0x300]
push edx
mov edx, dword [ebp + 0x2f8]
mov ecx, dword [eax + esi]
lea eax, [ebp + 0x220]
push ecx
mov ecx, dword [ebp + 0x308]
push eax
lea eax, [ebp + 0x230]
push eax
mov eax, dword [edx + esi]
mov edx, dword [ecx + esi]
push eax
push edx
call fcn.100139d0
add esp, 0x1c
add esi, 4
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
add ecx, eax
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x14]
mov al, byte [ecx]
cmp al, 0xa
je 0x10015f4f
cmp al, 0xd
jne 0x10015f6c
inc dword [esp + 0x14]
jmp 0x10015f41
add esi, eax
mov dword [esp + 0x14], esi
mov al, byte [esi]
cmp al, 0xa
je 0x10015f65
cmp al, 0xd
jne 0x10015f68
inc esi
jmp 0x10015f5b
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x14]
cmp byte [esi], 0
jne 0x100158ec
mov eax, dword [ebp + 0xc]
pop ebx
test eax, eax
je 0x10015f92
mov edx, dword [ebp + 0x2f0]
mov eax, dword [esp + 0x14]
mov byte [eax + edx - 1], 0
jmp 0x10015fa6
mov edi, dword [ebp + 0x2f0]
mov ecx, 8
mov esi, str._INVALID_LICTO_setting___code_
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov ecx, dword [esp + 0x38]
push ecx
call fcn.100f0ab3
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0xd4
ret