Function at 0x40a530
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x416c92
mov eax, dword fs:[0]
push eax
sub esp, 0xf4
mov eax, dword [0x41d408]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x88], esi
lea ecx, [esi + 0x14]
mov dword [ecx + 0x10], 0
mov eax, ecx
cmp dword [ecx + 0x14], 0x10
mov dword [ebp - 0xa8], ecx
jb 0x40a57f
mov eax, dword [ecx]
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [ebp - 0x40], xmm0
mov byte [eax], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
cmp dword [esi + 0x3c], 0
mov dword [ebp - 4], 0
jne 0x40a5be
push 0x33
push str.move_::_______piece__frompos_______to______topos_n
lea ecx, [ebp - 0x40]
call fcn.00404750
jmp 0x40a6e4
mov edx, dword [esi + 0x3c]
lea ecx, [esi + 0x2c]
mov eax, 0x7fffffff
mov dword [ebp - 0x8c], ecx
sub eax, edx
mov dword [ebp - 0x78], edx
cmp eax, 0x3a
jb 0x40b34c
cmp dword [ecx + 0x14], 0x10
jb 0x40a5eb
mov ecx, dword [ecx]
mov dword [ebp - 0x8c], ecx
lea eax, [edx + 0x3a]
mov dword [ebp - 0x18], 0
mov esi, 0xf
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x7c], eax
lea edi, [ebp - 0x28]
vmovdqu xmmword [ebp - 0x28], xmm0
cmp eax, esi
jbe 0x40a64b
mov esi, eax
or esi, 0xf
cmp esi, 0x7fffffff
jbe 0x40a624
mov esi, 0x7fffffff
jmp 0x40a62e
mov eax, 0x16
cmp esi, eax
cmovb esi, eax
lea eax, [esi + 1]
push eax
lea ecx, [ebp - 0x28]
call fcn.00401b30
mov ecx, dword [ebp - 0x8c]
mov edi, eax
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x78]
mov dword [ebp - 0x28], edi
vmovdqu ymm0, ymmword [str.move_::_prompt_____frompos______to____topos_nprompt_::__]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], esi
vmovdqu ymmword [edi], ymm0
vmovdqu xmm0, xmmword [0x4190f8]
vmovdqu xmmword [edi + 0x20], xmm0
vmovq xmm0, qword [0x419108]
vmovq qword [edi + 0x30], xmm0
mov ax, word [0x419110]
push edx
mov word [edi + 0x38], ax
lea eax, [edi + 0x3a]
push ecx
push eax
vzeroupper
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0x78]
mov byte [edi + eax + 0x3a], 0
push 0x4190d4
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 1
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00405b00
add esp, 0x18
cmp dword [eax + 0x14], 0x10
mov ecx, eax
mov byte [ebp - 4], 2
jb 0x40a6be
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
lea ecx, [ebp - 0x40]
call fcn.00404750
lea ecx, [ebp - 0x58]
call fcn.004015d0
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0
call fcn.004015d0
mov esi, dword [ebp - 0x88]
push 0x10
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x90], 0
call fcn.0041532b
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebp - 0x94], eax
push 0x10
mov byte [ebp - 4], 3
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 0
call fcn.0041532b
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebp - 0x9c], eax
push 0x10
mov byte [ebp - 4], 4
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0
call fcn.0041532b
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebp - 0x84], eax
mov edi, dword [esi]
test byte [esi + 0x10], 1
push 0x14
mov byte [ebp - 4], 5
lea eax, [edi + 0x140]
mov dword [ebp - 0xb0], 0
cmove edi, eax
mov dword [ebp - 0xac], 0
mov dword [ebp - 0x7c], edi
call fcn.0041532b
add esp, 0x10
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebp - 0xb0], eax
lea ecx, [edi + 0x140]
mov byte [ebp - 4], 6
mov dword [ebp - 0x8c], ecx
cmp edi, ecx
je 0x40abf9
cmp dword [edi + 0xc], 0
je 0x40abeb
cmp byte [esi + 0xc], 0
lea eax, [edi + 4]
mov byte [ebp - 0x72], 0
mov dword [ebp - 0x78], eax
je 0x40a947
cmp byte [eax], 5
je 0x40a947
mov esi, dword [edi + 8]
mov esi, dword [esi]
cmp byte [esi + 0xd], 0
jne 0x40abe5
mov ecx, dword [ebp - 0x88]
add ecx, 4
mov dword [ebp - 0xa0], ecx
nop dword [eax + eax]
mov al, byte [esi + 0xe]
mov byte [ebp - 0x73], al
lea eax, [ebp - 0x73]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.00406040
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x40a8e6
mov al, byte [esi + 0xe]
cmp al, byte [ecx + 0xe]
jl 0x40a8e6
lea eax, [ebp - 0x73]
push eax
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x84]
call fcn.00406040
mov ecx, dword [eax + 8]
vmovq xmm0, qword [eax]
vmovq qword [ebp - 0xe8], xmm0
cmp byte [ecx + 0xd], 0
jne 0x40a87f
mov al, byte [esi + 0xe]
cmp al, byte [ecx + 0xe]
jge 0x40a8df
cmp dword [ebp - 0x80], 0xfffffff
je 0x40b351
lea eax, [ebp - 0x73]
push eax
push dword [ebp - 0x84]
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0xdc]
call fcn.00405a70
mov edi, dword [eax + 4]
mov dword [eax + 4], 0
mov eax, dword [ebp - 0xd8]
test eax, eax
je 0x40a8c7
push 0x10
push eax
call fcn.0041535b
add esp, 8
push edi
push dword [ebp - 0xe4]
lea ecx, [ebp - 0x84]
push dword [ebp - 0xe8]
call fcn.00408370
mov dl, 1
mov byte [ebp - 0x72], dl
jmp 0x40a8e9
mov dl, byte [ebp - 0x72]
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x40a914
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x40a910
nop dword [eax + eax]
cmp esi, dword [eax + 8]
jne 0x40a910
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x40a900
mov esi, eax
jmp 0x40a92c
mov esi, eax
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x40a92c
nop
mov eax, dword [ecx]
mov esi, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x40a920
cmp byte [esi + 0xd], 0
mov ecx, dword [ebp - 0xa0]
je 0x40a820
mov eax, dword [ebp - 0x78]
mov edi, dword [ebp - 0x7c]
jmp 0x40aa6f
mov edi, dword [edi + 8]
mov ecx, dword [ebp - 0x84]
mov dword [ebp - 0x78], eax
mov dword [ebp - 0xa4], ecx
mov esi, dword [edi]
cmp esi, edi
je 0x40aa62
lea eax, [esi + 0xe]
push eax
push ecx
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x84]
call fcn.00405e60
vmovq xmm0, qword [eax]
mov eax, dword [eax + 8]
mov dword [ebp - 0xb4], eax
vmovq qword [ebp - 0xbc], xmm0
test al, al
jne 0x40aa0d
cmp dword [ebp - 0x80], 0xfffffff
je 0x40b351
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0xa0], eax
lea eax, [ebp - 0x84]
mov dword [ebp - 0xc4], eax
push 0x10
mov byte [ebp - 4], 7
mov dword [ebp - 0xc0], 0
call fcn.0041532b
mov cl, byte [esi + 0xe]
add esp, 4
mov byte [ebp - 4], 6
mov dword [ebp - 0xc0], 0
mov byte [eax + 0xe], cl
mov ecx, dword [ebp - 0xa0]
push eax
push dword [ebp - 0xb8]
mov dword [eax], ecx
push dword [ebp - 0xbc]
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
lea ecx, [ebp - 0x84]
mov word [eax + 0xc], 0
call fcn.00408370
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x40aa34
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x40aa30
nop
cmp esi, dword [eax + 8]
jne 0x40aa30
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x40aa20
mov esi, eax
jmp 0x40aa4c
mov esi, eax
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x40aa4c
nop
mov eax, dword [ecx]
mov esi, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x40aa40
mov ecx, dword [ebp - 0xa4]
cmp esi, edi
jne 0x40a963
mov edi, dword [ebp - 0x7c]
lea eax, [edi + 4]
jmp 0x40aa68
mov eax, dword [ebp - 0x78]
mov edi, dword [ebp - 0x7c]
cmp dword [edi + 0xc], 0
setne dl
test dl, dl
je 0x40abdf
mov esi, dword [ebp - 0x94]
xor edi, edi
mov dh, byte [eax]
mov byte [ebp - 0x71], dh
mov eax, dword [esi + 4]
mov dword [ebp - 0x78], eax
cmp byte [eax + 0xd], 0
jne 0x40aab8
mov dl, byte [eax + 0xe]
mov dword [ebp - 0x78], eax
cmp dl, dh
jge 0x40aa9f
mov eax, dword [eax + 8]
jmp 0x40aaa3
mov esi, eax
mov eax, dword [eax]
xor ecx, ecx
cmp dl, dh
setge cl
cmp byte [eax + 0xd], 0
mov dword [ebp - 0xa4], ecx
je 0x40aa90
mov edi, ecx
cmp byte [esi + 0xd], 0
jne 0x40aac3
cmp dh, byte [esi + 0xe]
jge 0x40ab2f
cmp dword [ebp - 0x90], 0xfffffff
je 0x40b351
mov esi, dword [ebp - 0x94]
lea eax, [ebp - 0x94]
mov dword [ebp - 0xcc], eax
push 0x10
mov byte [ebp - 4], 8
mov dword [ebp - 0xc8], 0
call fcn.0041532b
mov cl, byte [ebp - 0x71]
add esp, 4
mov byte [ebp - 4], 6
mov dword [ebp - 0xc8], 0
mov byte [eax + 0xe], cl
lea ecx, [ebp - 0x94]
push eax
mov dword [eax], esi
push edi
push dword [ebp - 0x78]
mov dword [eax + 4], esi
mov dword [eax + 8], esi
mov word [eax + 0xc], 0
call fcn.00408370
mov edi, dword [ebp - 0x7c]
lea ecx, [ebp - 0x9c]
mov al, byte [edi + 6]
mov byte [ebp - 0x71], al
mov byte [ebp - 0x72], al
lea eax, [ebp - 0x72]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.00406040
mov ecx, dword [eax + 8]
vmovq xmm0, qword [eax]
vmovq qword [ebp - 0xf4], xmm0
cmp byte [ecx + 0xd], 0
jne 0x40ab6b
mov al, byte [ebp - 0x71]
cmp al, byte [ecx + 0xe]
jge 0x40abdf
cmp dword [ebp - 0x98], 0xfffffff
je 0x40b351
mov esi, dword [ebp - 0x9c]
lea eax, [ebp - 0x9c]
mov dword [ebp - 0xd4], eax
push 0x10
mov byte [ebp - 4], 9
mov dword [ebp - 0xd0], 0
call fcn.0041532b
mov cl, byte [ebp - 0x71]
add esp, 4
mov byte [ebp - 4], 6
mov dword [ebp - 0xd0], 0
mov byte [eax + 0xe], cl
lea ecx, [ebp - 0x9c]
push eax
push dword [ebp - 0xf0]
mov dword [eax], esi
push dword [ebp - 0xf4]
mov dword [eax + 4], esi
mov dword [eax + 8], esi
mov word [eax + 0xc], 0
call fcn.00408370
mov ecx, dword [ebp - 0x8c]
mov esi, dword [ebp - 0x88]
add edi, 0x14
mov dword [ebp - 0x7c], edi
cmp edi, ecx
jne 0x40a7d6
cmp dword [ebp - 0x90], 0
je 0x40b2cd
push 0xb
push str.piece_::__
lea ecx, [ebp - 0x40]
call fcn.00404750
mov esi, dword [ebp - 0x94]
mov esi, dword [esi]
cmp byte [esi + 0xd], 0
jne 0x40ae16
nop word [eax + eax]
movsx eax, byte [esi + 0xe]
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [ebp - 0x70], xmm0
mov dword [ebp - 0x60], 0
mov edx, dword [eax*4 + 0x418da0]
mov ecx, edx
mov dword [ebp - 0x5c], 0
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ac57
sub ecx, edi
push ecx
push edx
lea ecx, [ebp - 0x70]
call fcn.004012d0
push 2
push 0x419124
push 0
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0xa
call fcn.00408c70
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [ebp - 0x28], xmm0
vmovdqu xmm0, xmmword [eax]
vmovdqu xmmword [ebp - 0x28], xmm0
vmovq xmm0, qword [eax + 0x10]
vmovq qword [ebp - 0x18], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push 3
push 0x419120
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0xb
call fcn.00404750
vmovdqu xmm1, xmmword [eax]
vmovq xmm0, qword [eax + 0x10]
vmovdqu xmmword [ebp - 0x58], xmm1
vmovq qword [ebp - 0x48], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
cmp dword [ebp - 0x44], 0x10
lea ecx, [ebp - 0x58]
push dword [ebp - 0x48]
vmovd eax, xmm1
cmovae ecx, eax
mov byte [ebp - 4], 0xc
push ecx
lea ecx, [ebp - 0x40]
call fcn.00404750
mov ecx, dword [ebp - 0x44]
mov byte [ebp - 4], 0xb
cmp ecx, 0x10
jb 0x40ad47
mov edx, dword [ebp - 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40ad3d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b321
push ecx
push edx
call fcn.0041535b
add esp, 8
mov ecx, dword [ebp - 0x14]
mov byte [ebp - 4], 0xa
cmp ecx, 0x10
jb 0x40ad7f
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40ad75
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b321
push ecx
push edx
call fcn.0041535b
add esp, 8
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov byte [ebp - 4], 6
cmp ecx, 0x10
jb 0x40adc9
mov edx, dword [ebp - 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40adbf
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b321
push ecx
push edx
call fcn.0041535b
add esp, 8
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x40adf4
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x40adf0
nop dword [eax + eax]
cmp esi, dword [eax + 8]
jne 0x40adf0
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x40ade0
mov esi, eax
jmp 0x40ae0c
mov esi, eax
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x40ae0c
nop
mov eax, dword [ecx]
mov esi, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x40ae00
cmp byte [esi + 0xd], 0
je 0x40ac30
mov ecx, dword [ebp - 0x30]
lea eax, [ebp - 0x40]
dec ecx
cmp dword [ebp - 0x2c], 0x10
mov dword [ebp - 0x30], ecx
cmovae eax, dword [ebp - 0x40]
push 3
push 0x419128
mov byte [eax + ecx], 0
lea ecx, [ebp - 0x40]
call fcn.00404750
push 0xd
push str.frompos_::__
lea ecx, [ebp - 0x40]
call fcn.00404750
mov esi, dword [ebp - 0x9c]
mov esi, dword [esi]
cmp byte [esi + 0xd], 0
jne 0x40b046
nop dword [eax]
movsx eax, byte [esi + 0xe]
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [ebp - 0x70], xmm0
mov dword [ebp - 0x60], 0
mov edx, dword [eax*4 + 0x418de0]
mov ecx, edx
mov dword [ebp - 0x5c], 0
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ae87
sub ecx, edi
push ecx
push edx
lea ecx, [ebp - 0x70]
call fcn.004012d0
push 2
push 0x419124
push 0
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0xd
call fcn.00408c70
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [ebp - 0x28], xmm0
vmovdqu xmm0, xmmword [eax]
vmovdqu xmmword [ebp - 0x28], xmm0
vmovq xmm0, qword [eax + 0x10]
vmovq qword [ebp - 0x18], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push 3
push 0x419120
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0xe
call fcn.00404750
vmovdqu xmm1, xmmword [eax]
vmovq xmm0, qword [eax + 0x10]
vmovdqu xmmword [ebp - 0x58], xmm1
vmovq qword [ebp - 0x48], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
cmp dword [ebp - 0x44], 0x10
lea ecx, [ebp - 0x58]
push dword [ebp - 0x48]
vmovd eax, xmm1
cmovae ecx, eax
mov byte [ebp - 4], 0xf
push ecx
lea ecx, [ebp - 0x40]
call fcn.00404750
mov ecx, dword [ebp - 0x44]
mov byte [ebp - 4], 0xe
cmp ecx, 0x10
jb 0x40af77
mov edx, dword [ebp - 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40af6d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b321
push ecx
push edx
call fcn.0041535b
add esp, 8
mov ecx, dword [ebp - 0x14]
mov byte [ebp - 4], 0xd
cmp ecx, 0x10
jb 0x40afaf
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40afa5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b321
push ecx
push edx
call fcn.0041535b
add esp, 8
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov byte [ebp - 4], 6
cmp ecx, 0x10
jb 0x40aff9
mov edx, dword [ebp - 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40afef
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b321
push ecx
push edx
call fcn.0041535b
add esp, 8
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x40b024
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x40b020
nop dword [eax + eax]
cmp esi, dword [eax + 8]
jne 0x40b020
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x40b010
mov esi, eax
jmp 0x40b03c
mov esi, eax
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x40b03c
nop
mov eax, dword [ecx]
mov esi, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x40b030
cmp byte [esi + 0xd], 0
je 0x40ae60
mov ecx, dword [ebp - 0x30]
lea eax, [ebp - 0x40]
dec ecx
cmp dword [ebp - 0x2c], 0x10
mov dword [ebp - 0x30], ecx
cmovae eax, dword [ebp - 0x40]
push 2
push 0x41913c
mov byte [eax + ecx], 0
lea ecx, [ebp - 0x40]
call fcn.00404750
push 0xb
push str.topos_::__
lea ecx, [ebp - 0x40]
call fcn.00404750
mov esi, dword [ebp - 0x84]
mov esi, dword [esi]
cmp byte [esi + 0xd], 0
jne 0x40b276
nop dword [eax]
movsx eax, byte [esi + 0xe]
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [ebp - 0x70], xmm0
mov dword [ebp - 0x60], 0
mov edx, dword [eax*4 + 0x418de0]
mov ecx, edx
mov dword [ebp - 0x5c], 0
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40b0b7
sub ecx, edi
push ecx
push edx
lea ecx, [ebp - 0x70]
call fcn.004012d0
push 2
push 0x419124
push 0
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x10
call fcn.00408c70
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [ebp - 0x28], xmm0
vmovdqu xmm0, xmmword [eax]
vmovdqu xmmword [ebp - 0x28], xmm0
vmovq xmm0, qword [eax + 0x10]
vmovq qword [ebp - 0x18], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push 3
push 0x419120
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x11
call fcn.00404750
vmovdqu xmm1, xmmword [eax]
vmovq xmm0, qword [eax + 0x10]
vmovdqu xmmword [ebp - 0x58], xmm1
vmovq qword [ebp - 0x48], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
cmp dword [ebp - 0x44], 0x10
lea ecx, [ebp - 0x58]
push dword [ebp - 0x48]
vmovd eax, xmm1
cmovae ecx, eax
mov byte [ebp - 4], 0x12
push ecx
lea ecx, [ebp - 0x40]
call fcn.00404750
mov ecx, dword [ebp - 0x44]
mov byte [ebp - 4], 0x11
cmp ecx, 0x10
jb 0x40b1a7
mov edx, dword [ebp - 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40b19d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b321
push ecx
push edx
call fcn.0041535b
add esp, 8
mov ecx, dword [ebp - 0x14]
mov byte [ebp - 4], 0x10
cmp ecx, 0x10
jb 0x40b1df
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40b1d5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b321
push ecx
push edx
call fcn.0041535b
add esp, 8
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov byte [ebp - 4], 6
cmp ecx, 0x10
jb 0x40b229
mov edx, dword [ebp - 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40b21f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40b321
push ecx
push edx
call fcn.0041535b
add esp, 8
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x40b254
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x40b250
nop dword [eax + eax]
cmp esi, dword [eax + 8]
jne 0x40b250
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x40b240
mov esi, eax
jmp 0x40b26c
mov esi, eax
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x40b26c
nop
mov eax, dword [ecx]
mov esi, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x40b260
cmp byte [esi + 0xd], 0
je 0x40b090
mov ecx, dword [ebp - 0x30]
lea eax, [ebp - 0x40]
dec ecx
cmp dword [ebp - 0x2c], 0x10
mov dword [ebp - 0x30], ecx
cmovae eax, dword [ebp - 0x40]
push 2
push 0x41913c
mov byte [eax + ecx], 0
lea ecx, [ebp - 0x40]
call fcn.00404750
mov esi, dword [ebp - 0xa8]
lea eax, [ebp - 0x40]
cmp esi, eax
je 0x40b2cd
mov ecx, esi
call fcn.004015d0
vmovdqu xmm0, xmmword [ebp - 0x40]
vmovdqu xmmword [esi], xmm0
vmovq xmm0, qword [ebp - 0x30]
vmovq qword [esi + 0x10], xmm0
mov esi, 0xf
mov byte [ebp - 0x40], 0
jmp 0x40b2d0
mov esi, dword [ebp - 0x2c]
lea ecx, [ebp - 0xb0]
call fcn.00407fa0
lea ecx, [ebp - 0x84]
call fcn.00407f60
lea ecx, [ebp - 0x9c]
call fcn.00407f60
lea ecx, [ebp - 0x94]
call fcn.00407f60
cmp esi, 0x10
jb 0x40b331
mov edx, dword [ebp - 0x40]
lea ecx, [esi + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x40b327
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x40b327
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.0041535b
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004155ba
mov esp, ebp
pop ebp
ret
call fcn.00401b20
call fcn.00408560
int3