Function at 0x4022d0
Capabilities:
Encode data using xor
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x574
mov eax, 0x431444
mov esi, dword [ebp + 0x10]
test esi, esi
mov edx, 0x447e80
cmove esi, eax
mov ecx, esi
test cl, 3
je 0x402307
mov al, byte [ecx]
inc ecx
test al, al
mov byte [edx], al
je 0x40230c
inc edx
test cl, 3
jne 0x4022f8
call fcn.004096b0
movzx eax, byte [esi]
cmp eax, 0x2d
je 0x4027ab
mov ebx, dword [ebp + 0xc]
cmp eax, 0x2a
jne 0x40232d
mov dword [0x446234], 1
inc esi
jmp 0x402336
cmp dword [0x446234], 0
je 0x4023a1
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0x14]
mov dword [esp + 0x4bc], 0x431590
mov dword [esp + 0x4c0], eax
mov dword [esp + 0x4c4], ebx
mov dword [esp + 0x4c8], esi
mov dword [esp + 0x4cc], edi
push 1
call fcn.00416e97
mov edi, eax
add esp, 4
call fcn.004021f0
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov dword [esp + 8], edi
lea edi, [esp + 0x4c0]
mov dword [esp + 0xc], str.NLS:_NlsRead__s___s___s___s__n
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edi
call fcn.00416b39
mov ecx, dword [ebp + 8]
lea edx, [esp + 0x3a8]
test cl, 3
je 0x4023bf
mov al, byte [ecx]
inc ecx
test al, al
mov byte [edx], al
je 0x4023c4
inc edx
test cl, 3
jne 0x4023b0
call fcn.004096b0
movzx edi, byte [esp + 0x3a8]
test edi, edi
je 0x402405
xor eax, eax
inc eax
cmp edi, 0x5c
jne 0x4023e0
mov byte [esp + eax*2 + 0x3a6], 0x2f
movzx edi, byte [esp + eax*2 + 0x3a7]
test edi, edi
je 0x402405
cmp edi, 0x5c
jne 0x4023f9
mov byte [esp + eax*2 + 0x3a7], 0x2f
movzx edi, byte [esp + eax*2 + 0x3a8]
test edi, edi
jne 0x4023d2
mov eax, 0x2f
lea edx, [esp + 0x3a8]
push edi
mov ecx, edx
movd xmm1, eax
and edx, 0xfffffff0
punpcklbw xmm1, xmm1
and ecx, 0xf
punpcklbw xmm1, xmm1
pshufd xmm1, xmm1, 0
pxor xmm0, xmm0
movdqa xmm2, xmmword [edx]
pcmpeqb xmm0, xmm2
pmovmskb edi, xmm0
pcmpeqb xmm2, xmm1
shr edi, cl
lea eax, [edi - 1]
xor edi, eax
pmovmskb eax, xmm2
shr eax, cl
and eax, edi
je 0x402457
bsr eax, eax
add eax, ecx
add eax, edx
or edi, edi
jg 0x402460
call fcn.00409eb0
pop edi
test eax, eax
je 0x402468
mov byte [eax], 0
cmp byte [esp + 0x3a8], 0
je 0x402483
mov edx, 0x4315b0
lea eax, [esp + 0x3a8]
call fcn.004097f0
mov byte [0x447f80], 0
cmp byte [esi], 0
jne 0x4027ba
mov esi, 0x4315b4
mov dword [esp + 0x53c], ebx
mov dword [esp + 0x538], esi
call fcn.004021f0
movq xmm0, qword [0x431570]
lea ecx, [esp + 0x13c]
movq xmm1, qword [eax]
por xmm1, xmm0
movq qword [esp], xmm1
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x10], esi
lea esi, [esp + 0x53c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], esi
call fcn.00416be3
lea edi, [esp + 0x2c]
mov edx, edi
lea ecx, [esp + 0x3a8]
test cl, 3
je 0x402510
mov al, byte [ecx]
inc ecx
test al, al
mov byte [edx], al
je 0x402515
inc edx
test cl, 3
jne 0x402501
call fcn.004096b0
mov eax, edi
mov edx, 0x43158c
call fcn.004097f0
lea esi, [esp + 0x240]
push esi
push edi
call fcn.00417900
mov edi, eax
add esp, 8
test edi, edi
jle 0x40273a
test byte [esp + 0x240], 0x10
jne 0x402718
mov edx, 0x4460c0
lea ecx, [esp + 0x264]
test cl, 3
je 0x40256a
mov al, byte [ecx]
inc ecx
test al, al
mov byte [edx], al
je 0x40256f
inc edx
test cl, 3
jne 0x40255b
call fcn.004096b0
lea edx, [esp + 0x13c]
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x40259a
mov eax, edx
add edx, ecx
call fcn.00409f00
mov edx, 0x4460c0
mov ebx, eax
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x4025c5
mov eax, edx
add edx, ecx
call fcn.00409f00
mov esi, eax
cmp ebx, esi
ja 0x402718
mov eax, 0x4460c0
lea ecx, [esp + 0x13c]
mov edx, ebx
call fcn.004093e0
test eax, eax
jne 0x402718
mov edx, str..nls
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x402613
mov eax, edx
add edx, ecx
call fcn.00409f00
mov edx, eax
cmp edx, esi
ja 0x402718
sub esi, edx
mov ecx, str..nls
lea eax, [esi + 0x4460c0]
call fcn.004093e0
test eax, eax
jne 0x402718
mov esi, str._s_s
lea eax, [esp + 0x3a8]
mov ebx, dword [ebp + 0xc]
mov dword [eax + 0x154], eax
mov dword [eax + 0x158], 0x4460c0
mov dword [eax + 0x150], esi
call fcn.004021f0
movq xmm0, qword [0x431570]
lea ecx, [esp + 0x13c]
movq xmm1, qword [eax]
por xmm1, xmm0
movq qword [esp], xmm1
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x10], esi
lea esi, [esp + 0x4fc]
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], esi
call fcn.00416be3
mov edx, ebx
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x4026cb
mov eax, edx
add edx, ecx
call fcn.00409f00
mov ebx, eax
mov edx, 0x4460c0
lea esi, [ebx + 1]
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x4026f9
mov eax, edx
add edx, ecx
call fcn.00409f00
mov edi, 0x4460c0
mov ecx, eax
sub ecx, esi
mov eax, 0x447f80
add ecx, 0xfffffffc
lea edx, [edi + ebx + 1]
call fcn.00409f20
jmp 0x40295d
lea eax, [esp + 0x240]
push eax
push edi
call fcn.0041791b
add esp, 8
test eax, eax
je 0x40253c
push edi
call fcn.004178da
add esp, 4
cmp dword [0x446234], 0
je 0x4027ab
mov edx, dword [ebp + 8]
lea eax, [esp + 0x3a8]
mov dword [eax - 0x27c], 0x4315b8
mov dword [eax - 0x278], eax
mov dword [eax - 0x274], edx
mov dword [eax - 0x270], 0x431580
push 1
call fcn.00416e97
mov ebx, eax
add esp, 4
call fcn.004021f0
lea edx, [esp + 0x130]
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov dword [esp + 8], ebx
mov dword [esp + 0xc], str.NLS:_file___s_____s____s__not_found_n
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
call fcn.00416b39
xor eax, eax
add esp, 0x574
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, str._s_s__s.nls
lea eax, [esp + 0x3a8]
mov dword [eax + 0x164], eax
mov dword [eax + 0x168], ebx
mov dword [eax + 0x16c], esi
mov dword [eax + 0x160], edi
call fcn.004021f0
movq xmm0, qword [0x431570]
movq xmm1, qword [eax]
lea eax, [esp + 0x13c]
por xmm1, xmm0
movq qword [esp], xmm1
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x10], edi
lea edi, [esp + 0x50c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], edi
call fcn.00416be3
push 0x4314a0
lea eax, [esp + 0x140]
push eax
call fcn.00414cd0
add esp, 8
test eax, eax
jne 0x402934
cmp dword [0x446234], 0
je 0x4028a3
mov dword [esp + 0x4b4], str.NLS:_file___s__not_found__continue_n
lea eax, [esp + 0x13c]
mov dword [eax + 0x37c], eax
push 1
call fcn.00416e97
mov edi, eax
add esp, 4
call fcn.004021f0
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov dword [esp + 8], edi
lea edi, [esp + 0x4b8]
mov dword [esp + 0xc], str.NLS:_file___s__not_found__continue_n
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edi
call fcn.00416b39
mov dword [esp + 0x4ec], ebx
lea eax, [esp + 0x3a8]
mov ebx, str._snls__s__s__s.nls
mov dword [eax + 0x13c], eax
mov dword [eax + 0x140], esi
mov dword [eax + 0x148], esi
mov dword [eax + 0x138], ebx
call fcn.004021f0
movq xmm0, qword [0x431570]
lea edx, [esp + 0x13c]
movq xmm1, qword [eax]
por xmm1, xmm0
movq qword [esp], xmm1
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x10], ebx
lea ebx, [esp + 0x4e4]
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], ebx
call fcn.00416be3
push 0x4314a0
lea eax, [esp + 0x140]
push eax
call fcn.00414cd0
add esp, 8
test eax, eax
je 0x40339c
push eax
call fcn.00416d4b
add esp, 4
mov edx, 0x447f80
mov ecx, esi
test cl, 3
je 0x402958
mov al, byte [ecx]
inc ecx
test al, al
mov byte [edx], al
je 0x40295d
inc edx
test cl, 3
jne 0x402949
call fcn.004096b0
cmp dword [0x446234], 0
je 0x4029bc
mov dword [esp + 0x4d8], str.NLS:_reading_file___s__n
lea eax, [esp + 0x13c]
mov dword [eax + 0x3a0], eax
push 1
call fcn.00416e97
mov ebx, eax
add esp, 4
call fcn.004021f0
lea edx, [esp + 0x4dc]
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov dword [esp + 8], ebx
mov dword [esp + 0xc], str.NLS:_reading_file___s__n
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
call fcn.00416b39
lea edx, [esp + 0x13c]
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x4029e7
mov eax, edx
add edx, ecx
call fcn.00409f00
mov esi, str..nls
lea edi, [esp + eax + 0x138]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x402a13
test dl, dl
je 0x402a0f
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x402a13
add edi, 2
add esi, 2
test dl, dl
jne 0x4029f3
xor eax, eax
jmp 0x402a18
sbb eax, eax
or eax, 1
mov dword [esp + 0x36c], eax
xor edx, edx
mov ecx, 1
test eax, eax
push 0x431588
lea esi, [esp + 0x140]
push esi
cmove edx, ecx
mov dword [esi + 0x22c], edx
call fcn.00414cd0
mov esi, eax
add esp, 8
test esi, esi
je 0x403773
push 2
push 0
push esi
call fcn.00417c44
push esi
call fcn.00418260
mov ebx, eax
xor eax, eax
push eax
push eax
push esi
mov dword [0x446220], ebx
call fcn.00417c44
lea eax, [ebx + 2]
push eax
call fcn.004171ec
mov edi, eax
add esp, 0x20
mov dword [0x446224], edi
test edi, edi
je 0x403769
push esi
push ebx
push 1
push edi
call fcn.00418451
add esp, 0x10
cmp eax, ebx
je 0x402ac3
mov esi, 0xfffffffc
cmp dword [0x446234], 0
jne 0x402f40
mov eax, 0xffffffff
add esp, 0x574
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push esi
call fcn.00416d4b
add esp, 4
xor eax, eax
lea edx, [ebx + edi]
mov dword [esp + 0x23c], edx
mov byte [edx], al
mov byte [edx + 1], al
test ebx, ebx
jle 0x40377d
cmp ebx, 0x10
jl 0x403757
mov edx, edi
and edx, 0xf
mov eax, edx
neg eax
add eax, 0x10
test edx, edx
cmovne edx, eax
lea ecx, [edx + 0x10]
cmp ebx, ecx
jl 0x403757
mov ecx, ebx
sub ecx, edx
and ecx, 0xf
neg ecx
add ecx, ebx
test edx, edx
jbe 0x403786
mov esi, edi
xor eax, eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], ebx
movzx ebx, byte [esi]
cmp ebx, 0x20
jge 0x402b3e
cmp ebx, 0xd
je 0x402b3e
cmp ebx, 0xa
je 0x402b3e
mov byte [esi], 0x20
inc eax
inc esi
cmp eax, edx
jb 0x402b29
mov ebx, dword [esp + 0x20]
movdqu xmm1, xmmword [0x431530]
lea eax, [edi + edx]
movdqu xmm3, xmmword [0x431540]
movdqa xmm2, xmm1
psubb xmm2, xmm3
movdqu xmm0, xmmword [0x431560]
nop dword [eax + eax]
movdqu xmm5, xmmword [eax]
movdqa xmm6, xmm2
movdqa xmm7, xmm5
add edx, 0x10
psubb xmm7, xmm3
pcmpeqd xmm4, xmm4
pcmpgtb xmm6, xmm7
movdqu xmm7, xmmword [str._r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n]
pcmpeqb xmm7, xmm5
pxor xmm7, xmm4
pand xmm6, xmm7
movdqa xmm7, xmm0
pcmpeqb xmm7, xmm5
pxor xmm7, xmm4
pand xmm6, xmm7
movdqa xmm4, xmm6
pand xmm6, xmm1
pandn xmm4, xmm5
por xmm6, xmm4
movdqu xmmword [eax], xmm6
add eax, 0x10
cmp edx, ecx
jb 0x402b70
movdqu xmm5, xmmword [str._r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n]
lea eax, [ecx + 1]
pcmpeqd xmm4, xmm4
cmp eax, ebx
ja 0x402c7c
sub ebx, ecx
cmp ebx, 4
jl 0x403750
mov edx, ebx
xor eax, eax
and edx, 0xfffffffc
lea esi, [edi + ecx]
nop dword [eax]
nop dword [eax]
movd xmm5, dword [eax + esi]
movdqa xmm6, xmm2
movdqa xmm7, xmm5
psubb xmm7, xmm3
pcmpeqd xmm4, xmm4
pcmpgtb xmm6, xmm7
movdqu xmm7, xmmword [str._r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n]
pcmpeqb xmm7, xmm5
pxor xmm7, xmm4
pand xmm6, xmm7
movdqa xmm7, xmm0
pcmpeqb xmm7, xmm5
pxor xmm7, xmm4
pand xmm6, xmm7
movdqa xmm4, xmm6
pand xmm6, xmm1
pandn xmm4, xmm5
por xmm6, xmm4
movd dword [eax + esi], xmm6
add eax, 4
cmp eax, edx
jb 0x402c00
cmp edx, ebx
jae 0x402c7c
add ecx, edi
add ecx, edx
movzx eax, byte [ecx]
cmp eax, 0x20
jge 0x402c76
cmp eax, 0xd
je 0x402c76
cmp eax, 0xa
je 0x402c76
mov byte [ecx], 0x20
inc edx
inc ecx
cmp edx, ebx
jb 0x402c61
xor eax, eax
xor esi, esi
cmp edi, dword [esp + 0x23c]
jae 0x402d40
mov dword [esp + 0x20], edi
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x23c]
mov edi, edx
test edx, edx
je 0x402d3c
movzx ecx, byte [edx]
cmp ecx, 0x20
jge 0x402cdd
xor eax, eax
inc eax
test ecx, ecx
je 0x402d3c
lea ebx, [edx + eax*2]
movzx ecx, byte [ebx - 1]
lea edi, [ebx - 1]
cmp ecx, 0x20
jge 0x402cd6
test ecx, ecx
je 0x402d3c
movzx ecx, byte [ebx]
mov edi, ebx
cmp ecx, 0x20
jl 0x402cb0
mov ebx, dword [esp + 0x23c]
mov eax, edi
cmp byte [edi], 0x20
jb 0x402cfa
xor ecx, ecx
inc ecx
lea edx, [edi + ecx*2]
cmp byte [edx - 1], 0x20
lea eax, [edx - 1]
jb 0x402cfa
mov eax, edx
cmp byte [edx], 0x20
jae 0x402ce6
mov byte [eax], 0
test edi, edi
je 0x402d3c
mov edx, edi
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x402d27
mov eax, edx
add edx, ecx
call fcn.00409f00
cmp byte [edi], 0x23
lea edx, [edi + eax + 1]
lea ecx, [esi + 1]
cmovne esi, ecx
cmp edx, ebx
jb 0x402c9c
mov edi, dword [esp + 0x20]
lea ebx, [esi*4]
push ebx
call fcn.004171ec
mov dword [esp + 0x13c], eax
push ebx
mov edx, eax
mov dword [0x446228], edx
call fcn.004171ec
add esp, 8
mov dword [0x44622c], eax
cmp dword [esp + 0x138], 0
je 0x403746
test eax, eax
je 0x403746
cmp edi, dword [esp + 0x23c]
jae 0x402f31
mov ecx, 0x20
mov ebx, 0x3d
cmp dword [esp + 0x36c], 0
cmove ebx, ecx
xor edx, edx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x134], edx
mov dword [esp + 0x130], eax
mov dword [esp + 0x12c], esi
mov esi, edi
test edi, edi
je 0x402f2a
movzx ebx, byte [edi]
cmp ebx, 0x20
jge 0x402dfb
xor ecx, ecx
inc ecx
test ebx, ebx
je 0x402f2a
lea ebx, [edi + ecx*2]
lea esi, [ebx - 1]
movzx ebx, byte [esi]
cmp ebx, 0x20
jge 0x402dfb
test ebx, ebx
je 0x402f2a
lea esi, [edi + ecx*2]
movzx ebx, byte [esi]
cmp ebx, 0x20
jl 0x402dd1
mov ecx, esi
cmp byte [esi], 0x20
jb 0x402e18
xor ebx, ebx
inc ebx
lea edi, [esi + ebx*2]
cmp byte [edi - 1], 0x20
lea ecx, [edi - 1]
jb 0x402e18
mov ecx, edi
cmp byte [edi], 0x20
jae 0x402e04
mov byte [ecx], 0
mov edi, esi
test esi, esi
je 0x402f2a
mov edx, esi
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x402e4b
mov eax, edx
add edx, ecx
call fcn.00409f00
mov ebx, eax
movzx eax, byte [esi]
cmp eax, 0x23
je 0x4035f1
cmp eax, 0x20
jle 0x402f1d
mov ecx, dword [esp + 0x138]
mov edi, dword [esp + 0x134]
mov dword [ecx + edi*4], esi
mov ecx, esi
mov edi, 1
cmp eax, dword [esp + 0x28]
je 0x4035e8
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x28]
lea edx, [esi + edi*2]
movzx eax, byte [edx - 1]
lea ecx, [edx - 1]
test eax, eax
je 0x4035de
cmp eax, ebx
je 0x402eb4
movzx eax, byte [edx]
mov ecx, edx
test eax, eax
je 0x4035de
inc edi
cmp eax, ebx
jne 0x402e8c
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x20]
lea edi, [ecx - 1]
cmp edi, esi
jbe 0x402ee3
xor eax, eax
mov edx, edi
sub edx, esi
mov dword [esp + 0x24], esi
mov esi, eax
cmp byte [esi + edi], 0x20
ja 0x402edf
inc eax
mov byte [esi + edi], 0
dec esi
cmp eax, edx
jb 0x402ecf
mov esi, dword [esp + 0x24]
mov byte [ecx], 0
lea edx, [ecx + 1]
cmp dword [esp + 0x368], 0
jne 0x403356
mov ecx, dword [esp + 0x130]
mov edi, dword [esp + 0x134]
mov dword [ecx + edi*4], edx
inc edi
mov dword [esp + 0x134], edi
cmp edi, dword [esp + 0x12c]
jge 0x402f2a
lea edi, [esi + ebx + 1]
cmp edi, dword [esp + 0x23c]
jb 0x402dbd
mov esi, dword [esp + 0x12c]
mov dword [0x446230], esi
cmp dword [0x446234], 0
je 0x402f9c
mov dword [esp + 0x4a8], str.NLS:_read_mapping__s____d_n
lea edx, [esp + 0x13c]
mov dword [edx + 0x370], edx
mov dword [edx + 0x374], esi
push 1
call fcn.00416e97
mov ebx, eax
add esp, 4
call fcn.004021f0
lea edx, [esp + 0x4ac]
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov dword [esp + 8], ebx
mov dword [esp + 0xc], str.NLS:_read_mapping__s____d_n
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
call fcn.00416b39
test esi, esi
jl 0x402ab1
cmp dword [ebp + 0x14], 0
je 0x402fdf
mov esi, 0x4461e0
mov edi, dword [ebp + 0x14]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x402fd2
test dl, dl
je 0x402fce
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x402fd2
add edi, 2
add esi, 2
test dl, dl
jne 0x402fb2
xor eax, eax
jmp 0x402fd7
sbb eax, eax
or eax, 1
test eax, eax
jne 0x403344
mov esi, dword [0x446230]
mov ecx, dword [0x446228]
mov ebx, dword [0x44622c]
mov dword [esp + 0x544], 0
test esi, esi
jle 0x403321
xor edx, edx
mov edi, 1
mov dword [esp + 0x368], edx
mov dword [esp + 0x558], ebx
mov dword [esp + 0x23c], edx
mov dword [esp + 0x550], edi
mov dword [esp + 0x548], edx
mov dword [esp + 0x55c], ecx
mov dword [esp + 0x554], esi
mov ebx, dword [esp + 0x368]
inc ebx
mov eax, dword [esp + 0x55c]
mov ecx, dword [esp + 0x558]
cmp dword [0x446234], 1
mov edx, dword [eax + ebx*4 - 4]
mov esi, dword [ecx + ebx*4 - 4]
mov dword [esp + 0x564], edx
mov dword [esp + 0x560], esi
jle 0x4030d6
mov eax, edx
lea ecx, [ebx - 1]
mov edx, esi
mov dword [esp + 0x51c], 0x43167c
mov dword [esp + 0x524], eax
mov dword [esp + 0x528], edx
mov dword [esp + 0x520], ecx
push 1
call fcn.00416e97
mov esi, eax
add esp, 4
call fcn.004021f0
lea edx, [esp + 0x520]
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov dword [esp + 8], esi
mov dword [esp + 0xc], str.NlsRead:__3d__s_s____n
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
call fcn.00416b39
mov esi, 0x431728
mov edi, dword [esp + 0x564]
mov dl, byte [edi]
cmp dl, byte [esi]
jne 0x403102
test dl, dl
je 0x4030fe
mov dl, byte [edi + 1]
cmp dl, byte [esi + 1]
jne 0x403102
add edi, 2
add esi, 2
test dl, dl
jne 0x4030e2
xor eax, eax
jmp 0x403107
sbb eax, eax
or eax, 1
test eax, eax
je 0x4031f8
cmp dword [esp + 0x550], 0
jne 0x403306
mov eax, dword [esp + 0x564]
cmp byte [eax], 0x23
je 0x403306
mov esi, 0x431454
lea eax, [esp + 0x54c]
mov dword [eax - 0x20], esi
mov dword [eax - 0x1c], eax
call fcn.00402200
lea ecx, [esp + 0x530]
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov edx, dword [ecx + 0x34]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], ecx
call fcn.00414b20
cmp eax, 1
je 0x403405
inc dword [esp + 0x544]
cmp dword [0x446234], 0
je 0x403306
mov eax, dword [esp + 0x564]
mov dword [esp + 0x130], eax
mov dword [esp + 0x12c], str.NLS:_invalid_key___s__in_line__d_n
mov dword [esp + 0x134], ebx
push 1
call fcn.00416e97
mov esi, eax
add esp, 4
call fcn.004021f0
lea edx, [esp + 0x130]
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov dword [esp + 8], esi
mov dword [esp + 0xc], str.NLS:_invalid_key___s__in_line__d_n
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
call fcn.00416b39
jmp 0x403306
mov ecx, dword [esp + 0x560]
lea edx, [esp + 0x368]
test cl, 3
je 0x40321a
mov al, byte [ecx]
inc ecx
test al, al
mov byte [edx], al
je 0x40321f
inc edx
test cl, 3
jne 0x40320b
call fcn.004096b0
cmp dword [0x446234], 0
je 0x40327e
mov dword [esp + 0x4d0], str.NLS:_found_definitions_for___s__n
lea eax, [esp + 0x368]
mov dword [eax + 0x16c], eax
push 1
call fcn.00416e97
mov esi, eax
add esp, 4
call fcn.004021f0
lea edx, [esp + 0x4d4]
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov dword [esp + 8], esi
mov dword [esp + 0xc], str.NLS:_found_definitions_for___s__n
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
call fcn.00416b39
lea eax, [esp + 0x368]
push eax
call fcn.00402210
mov dword [esp + 0x54c], eax
add esp, 4
cmp dword [esp + 0x548], 0
je 0x40349f
cmp dword [eax], 0
je 0x40348f
mov esi, eax
xor eax, eax
inc eax
cmp dword [esi + eax*8 - 4], 0
lea edx, [eax + eax]
lea ecx, [eax + eax - 1]
je 0x4032c7
mov ecx, edx
cmp dword [esi + eax*8], 0
jne 0x4032b0
mov dword [esp + 0x23c], ecx
mov dword [esp + 0x548], esi
mov eax, dword [0x446228]
mov edx, dword [0x44622c]
mov ecx, dword [0x446230]
mov dword [esp + 0x55c], eax
mov dword [esp + 0x558], edx
mov dword [esp + 0x554], ecx
mov dword [esp + 0x550], 0
cmp ebx, dword [esp + 0x554]
jl 0x403043
mov ebx, dword [esp + 0x558]
mov ecx, dword [esp + 0x55c]
push ecx
call fcn.0041850b
push ebx
call fcn.0041850b
add esp, 8
mov eax, dword [esp + 0x544]
add esp, 0x574
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, 0xfffffffe
add esp, 0x574
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x20], ebx
mov edi, edx
mov dword [esp + 0x24], esi
xor eax, eax
jmp 0x403367
lea edi, [esi + 1]
inc eax
movzx ebx, byte [edi]
cmp ebx, 0x5c
je 0x403593
mov byte [ecx + eax*2 - 1], bl
test ebx, ebx
je 0x403539
lea esi, [edi + 1]
movzx ebx, byte [esi]
cmp ebx, 0x5c
je 0x403546
mov byte [ecx + eax*2], bl
test ebx, ebx
je 0x403539
jmp 0x403364
cmp dword [0x446234], 0
je 0x4033f3
mov dword [esp + 0x20], str.NLS:_file___s__not_found_n
lea eax, [esp + 0x13c]
mov dword [esp + 0x24], eax
push 1
call fcn.00416e97
mov ebx, eax
add esp, 4
call fcn.004021f0
lea edx, [esp + 0x24]
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov dword [esp + 8], ebx
mov dword [esp + 0xc], str.NLS:_file___s__not_found_n
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
call fcn.00416b39
mov eax, 0xffffffff
add esp, 0x574
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x54c]
cmp ecx, dword [esp + 0x23c]
jl 0x403479
inc dword [esp + 0x544]
cmp dword [0x446234], 0
je 0x403306
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], str.NLS:_key__d_out_of_range_in_line__d_n
mov dword [esp + 0x28], ebx
push 1
call fcn.00416e97
mov esi, eax
add esp, 4
call fcn.004021f0
lea edx, [esp + 0x24]
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov dword [esp + 8], esi
mov dword [esp + 0xc], str.NLS:_key__d_out_of_range_in_line__d_n
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
call fcn.00416b39
jmp 0x403306
mov edx, dword [esp + 0x548]
mov eax, dword [esp + 0x560]
mov dword [edx + ecx*4], eax
jmp 0x403306
mov dword [esp + 0x23c], 0
jmp 0x4032d5
inc dword [esp + 0x544]
cmp dword [0x446234], 0
je 0x4034f8
mov dword [esp + 0x138], str.NLS:_dropping_these_definitions_n
push 1
call fcn.00416e97
mov esi, eax
add esp, 4
call fcn.004021f0
lea edx, [esp + 0x13c]
movq xmm0, qword [eax]
movq qword [esp], xmm0
mov dword [esp + 8], esi
mov dword [esp + 0xc], str.NLS:_dropping_these_definitions_n
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
call fcn.00416b39
mov eax, dword [0x446228]
mov edx, dword [0x44622c]
mov ecx, dword [0x446230]
mov dword [esp + 0x55c], eax
mov dword [esp + 0x558], edx
mov dword [esp + 0x554], ecx
mov dword [esp + 0x550], 1
mov dword [esp + 0x23c], 0
jmp 0x403306
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
jmp 0x402ef7
lea esi, [edi + 2]
movzx ebx, byte [esi]
cmp ebx, 0x74
je 0x403589
cmp ebx, 0x72
je 0x40357f
cmp ebx, 0x6e
jne 0x403565
mov ebx, 0xa
jmp 0x40338f
cmp ebx, 0x62
jne 0x403574
mov ebx, 8
jmp 0x40338f
cmp ebx, 0x22
cmove ebx, ebx
jmp 0x40338f
mov ebx, 0xd
jmp 0x40338f
mov ebx, 9
jmp 0x40338f
inc edi
movzx ebx, byte [edi]
cmp ebx, 0x74
je 0x4035d4
cmp ebx, 0x72
je 0x4035ca
cmp ebx, 0x6e
jne 0x4035b0
mov ebx, 0xa
jmp 0x403374
cmp ebx, 0x62
jne 0x4035bf
mov ebx, 8
jmp 0x403374
cmp ebx, 0x22
cmove ebx, ebx
jmp 0x403374
mov ebx, 0xd
jmp 0x403374
mov ebx, 9
jmp 0x403374
mov esi, 0xfffffffa
jmp 0x402aa4
test eax, eax
je 0x4035de
jmp 0x402ebc
cmp dword [esp + 0x134], 0
jne 0x402f19
cmp dword [esp + 0x368], 0
je 0x402f19
mov eax, esi
mov edx, 0x40
mov ecx, eax
and ecx, 0xf
and eax, 0xfffffff0
push eax
pxor xmm2, xmm2
movd xmm1, edx
punpcklbw xmm1, xmm1
punpcklbw xmm1, xmm1
pshufd xmm1, xmm1, 0
movdqa xmm0, xmmword [eax]
pcmpeqb xmm2, xmm0
pcmpeqb xmm0, xmm1
pmovmskb edx, xmm0
pmovmskb eax, xmm2
shr edx, cl
shr eax, cl
test edx, edx
jne 0x403654
test eax, eax
je 0x40366c
jmp 0x403667
bsf edx, edx
bsf eax, eax
je 0x403660
cmp edx, eax
jg 0x403667
pop eax
add eax, ecx
add eax, edx
jmp 0x403672
pop edx
xor eax, eax
jmp 0x403672
pop eax
call fcn.0040a150
mov edi, eax
test edi, edi
je 0x40370e
inc edi
mov edx, 0x22
mov eax, edi
mov ecx, eax
and ecx, 0xf
and eax, 0xfffffff0
push eax
pxor xmm2, xmm2
movd xmm1, edx
punpcklbw xmm1, xmm1
punpcklbw xmm1, xmm1
pshufd xmm1, xmm1, 0
movdqa xmm0, xmmword [eax]
pcmpeqb xmm2, xmm0
pcmpeqb xmm0, xmm1
pmovmskb edx, xmm0
pmovmskb eax, xmm2
shr edx, cl
shr eax, cl
test edx, edx
jne 0x4036c4
test eax, eax
je 0x4036dc
jmp 0x4036d7
bsf edx, edx
bsf eax, eax
je 0x4036d0
cmp edx, eax
jg 0x4036d7
pop eax
add eax, ecx
add eax, edx
jmp 0x4036e2
pop edx
xor eax, eax
jmp 0x4036e2
pop eax
call fcn.0040a150
test eax, eax
je 0x4036e9
mov byte [eax], 0
mov edx, 0x446238
mov ecx, edi
test cl, 3
je 0x403704
mov al, byte [ecx]
inc ecx
test al, al
mov byte [edx], al
je 0x403709
inc edx
test cl, 3
jne 0x4036f5
call fcn.004096b0
jmp 0x402f19
cmp ebx, 2
jbe 0x402f19
cmp ebx, 0x42
jae 0x402f19
mov edx, 0x4461e0
lea ecx, [esi + 2]
test cl, 3
je 0x40373c
mov al, byte [ecx]
inc ecx
test al, al
mov byte [edx], al
je 0x403741
inc edx
test cl, 3
jne 0x40372d
call fcn.004096b0
jmp 0x402f19
mov esi, 0xfffffffb
jmp 0x402aa4
xor edx, edx
jmp 0x402c59
cmp ebx, 1
jb 0x40377d
xor edx, edx
mov dword [esp + 0x24], edi
xor ecx, ecx
jmp 0x402c59
mov esi, 0xfffffffd
jmp 0x402aa4
mov esi, 0xfffffffe
jmp 0x402aa4
mov dword [esp + 0x24], edi
jmp 0x402c7c
mov dword [esp + 0x24], edi
jmp 0x402b48