Function at 0x408680
Capabilities:
Check if file exists
Copy file
Delete file
Get file attributes

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x431770
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x18f0
call fcn.00411330
mov eax, dword [0x443054]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, ecx
mov dword [ebp - 0x18e4], eax
lea ecx, [ebp - 0x18c8]
mov dword [ebp - 4], 1
push ecx
mov ecx, eax
call fcn.004082f0
mov esi, 0x7ffffffe
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x18b8]
mov eax, esi
mov edi, dword [ebx + 0x18]
sub eax, edx
cmp eax, edi
jb 0x4094f3
cmp dword [ebp - 0x18b4], 8
lea ecx, [ebp - 0x18c8]
push edi
cmovae ecx, dword [ebp - 0x18c8]
lea eax, [ebx + 8]
cmp dword [ebx + 0x1c], 8
cmovae eax, dword [ebx + 8]
push eax
push edx
push ecx
push ecx
push dword [ebp - 0x18e4]
lea ecx, [ebp - 0x1850]
call fcn.004074f0
push str..ide
lea edx, [ebp - 0x1850]
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x18e0]
call fcn.00407020
add esp, 4
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x183c]
cmp edx, 8
jb 0x408796
mov ecx, dword [ebp - 0x1850]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40878c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4094f8
push edx
push ecx
call fcn.00410765
add esp, 8
mov ecx, dword [ebx + 0x30]
xor eax, eax
sub esi, ecx
mov dword [ebp - 0x1840], 0
mov dword [ebp - 0x183c], 7
mov word [ebp - 0x1850], ax
cmp esi, 1
jb 0x4094fd
cmp dword [ebx + 0x34], 8
lea eax, [ebx + 0x20]
push 1
cmovae eax, dword [ebx + 0x20]
push 0x43dca8
push ecx
push eax
push ecx
push dword [ebp - 0x18e4]
lea ecx, [ebp - 0x1898]
call fcn.004074f0
mov byte [ebp - 4], 6
lea edx, [ebx + 8]
cmp dword [ebx + 0x1c], 8
mov ecx, dword [ebp - 0x1888]
cmovae edx, dword [ebx + 8]
mov eax, dword [ebp - 0x1884]
mov edi, dword [ebx + 0x18]
sub eax, ecx
mov dword [ebp - 0x18e8], ecx
cmp edi, eax
ja 0x408855
cmp dword [ebp - 0x1884], 8
lea eax, [edi + ecx]
lea esi, [ebp - 0x1898]
mov dword [ebp - 0x1888], eax
cmovae esi, dword [ebp - 0x1898]
lea eax, [edi + edi]
push eax
push edx
lea ecx, [esi + ecx*2]
push ecx
call fcn.00411c90
mov eax, dword [ebp - 0x18e8]
add esp, 0xc
add eax, edi
xor ecx, ecx
mov word [esi + eax*2], cx
lea eax, [ebp - 0x1898]
jmp 0x408870
push edi
push edx
mov byte [ebp - 0x18e8], 0
lea ecx, [ebp - 0x1898]
push dword [ebp - 0x18e8]
push edi
call fcn.004075f0
mov dword [ebp - 0x1880], 0
xor ecx, ecx
mov dword [ebp - 0x1870], 0
mov dword [ebp - 0x186c], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x1880], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x1870], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
push str..ide
lea edx, [ebp - 0x1880]
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x1868]
call fcn.00407020
add esp, 4
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x186c]
cmp edx, 8
jb 0x408919
mov ecx, dword [ebp - 0x1880]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40890f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409502
push edx
push ecx
call fcn.00410765
add esp, 8
xor eax, eax
mov dword [ebp - 0x1870], 0
mov dword [ebp - 0x186c], 7
mov word [ebp - 0x1880], ax
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x1884]
cmp edx, 8
jb 0x40897a
mov ecx, dword [ebp - 0x1898]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x408970
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409502
push edx
push ecx
call fcn.00410765
add esp, 8
xor eax, eax
mov dword [ebp - 0x1888], 0
push 0x208
push eax
mov word [ebp - 0x1898], ax
lea eax, [ebp - 0x1038]
push eax
mov dword [ebp - 0x1884], 7
call fcn.00412210
add esp, 0xc
lea eax, [ebp - 0x630]
push 0x208
push 0
push eax
call fcn.00412210
add esp, 0xc
lea eax, [ebp - 0x428]
push 0x208
push 0
push eax
call fcn.00412210
add esp, 0xc
lea eax, [ebp - 0x1838]
push 0x800
push 0
push eax
call fcn.00412210
add esp, 0xc
lea eax, [ebp - 0xe30]
push 0x800
push 0
push eax
call fcn.00412210
add esp, 0xc
lea eax, [ebp - 0x1838]
push str.B9ECED6F.ArmouryCrate_qmba6cd70vzyy
push 0x104
push eax
call fcn.00401130
add esp, 0xc
lea eax, [ebp - 0x428]
push eax
call fcn.004099e0
lea eax, [ebp - 0x428]
push eax
push str._lsSupportTemp
lea eax, [ebp - 0x1038]
push 0x104
push eax
call fcn.00401130
lea eax, [ebp - 0x428]
push eax
push 0x43e528
lea eax, [ebp - 0x630]
push 0x104
push eax
call fcn.00401130
push 0x208
lea eax, [ebp - 0x220]
push 0
push eax
call fcn.00412210
add esp, 0x2c
lea eax, [ebp - 0x220]
push str.C:Program_Files__x86_ASUS
push str._s_file.ide
push 0x104
push eax
call fcn.00401130
cmp dword [ebx + 0x1c], 8
lea eax, [ebx + 8]
cmovae eax, dword [ebx + 8]
push eax
lea eax, [ebp - 0x630]
push eax
push str._s_ls.ide
lea eax, [ebp - 0xe30]
push 0x104
push eax
call fcn.00401130
add esp, 0x24
lea eax, [ebp - 0x1868]
push eax
lea ecx, [ebp - 0x1900]
call fcn.00406040
lea eax, [ebp - 0x18e0]
mov byte [ebp - 4], 0xb
push eax
lea ecx, [ebp - 0x1850]
call fcn.00406040
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x1850]
cmp dword [ebp - 0x183c], 8
lea eax, [ebp - 0x1900]
mov edi, dword [ebp - 0x18e4]
cmovae ecx, dword [ebp - 0x1850]
cmp dword [ebp - 0x18ec], 8
push 1
cmovae eax, dword [ebp - 0x1900]
push eax
mov eax, dword [edi + 0x38]
push ecx
call eax
mov byte [ebp - 4], 0xc
mov esi, eax
mov edx, dword [ebp - 0x183c]
cmp edx, 8
jb 0x408b69
mov ecx, dword [ebp - 0x1850]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x408b5f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409507
push edx
push ecx
call fcn.00410765
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x18ec]
mov dword [ebp - 0x1840], 0
mov dword [ebp - 0x183c], 7
mov word [ebp - 0x1850], ax
cmp edx, 8
jb 0x408bca
mov ecx, dword [ebp - 0x1900]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x408bc0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409507
push edx
push ecx
call fcn.00410765
add esp, 8
lea eax, [ebp - 0x1848]
push eax
call fcn.00419b80
add esp, 4
lea eax, [ebp - 0x1848]
push eax
call fcn.0041a536
movzx ecx, word [ebp - 0x1840]
add esp, 4
mov edx, eax
push ecx
push dword [edx]
mov eax, dword [edx + 0x10]
push dword [edx + 4]
inc eax
push dword [edx + 8]
push dword [edx + 0xc]
push eax
mov eax, dword [edx + 0x14]
add eax, 0x76c
push eax
push str._04d__02d__02d__02d:_02d:_02d._03d
push 0x445278
call fcn.0040ae70
add esp, 0x24
mov byte [0x44528f], 0
push esi
push 0x445278
push str._s_GetIdeFile_result___d
push 0x4451ec
call fcn.0040b450
add esp, 0x10
cmp esi, 5
je 0x408e32
cmp dword [ebp - 0x1854], 8
lea eax, [ebp - 0x1868]
cmovae eax, dword [ebp - 0x1868]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
lea eax, [ebp - 0xe30]
push eax
call esi
cmp eax, 0xffffffff
je 0x408d1a
test al, 0x10
jne 0x408d1a
lea eax, [ebp - 0x1848]
push eax
call fcn.00419b80
add esp, 4
lea eax, [ebp - 0x1848]
push eax
call fcn.0041a536
movzx ecx, word [ebp - 0x1840]
add esp, 4
mov edx, eax
push ecx
push dword [edx]
mov eax, dword [edx + 0x10]
push dword [edx + 4]
inc eax
push dword [edx + 8]
push dword [edx + 0xc]
push eax
mov eax, dword [edx + 0x14]
add eax, 0x76c
push eax
push str._04d__02d__02d__02d:_02d:_02d._03d
push 0x445278
call fcn.0040ae70
add esp, 0x24
mov byte [0x44528f], 0
lea eax, [ebp - 0xe30]
push eax
push 0x445278
push str._s_Temp_Ide_Already_Exists_at__ls
push 0x4451ec
call fcn.0040b450
add esp, 0x10
lea eax, [ebp - 0x1868]
cmp dword [ebp - 0x1854], 8
cmovae eax, dword [ebp - 0x1868]
push 1
push eax
lea eax, [ebp - 0xe30]
jmp 0x408dc9
lea eax, [ebp - 0x220]
push eax
call esi
cmp eax, 0xffffffff
je 0x408dd0
test al, 0x10
jne 0x408dd0
lea eax, [ebp - 0x1848]
push eax
call fcn.00419b80
add esp, 4
lea eax, [ebp - 0x1848]
push eax
call fcn.0041a536
movzx ecx, word [ebp - 0x1840]
add esp, 4
mov edx, eax
push ecx
push dword [edx]
mov eax, dword [edx + 0x10]
push dword [edx + 4]
inc eax
push dword [edx + 8]
push dword [edx + 0xc]
push eax
mov eax, dword [edx + 0x14]
add eax, 0x76c
push eax
push str._04d__02d__02d__02d:_02d:_02d._03d
push 0x445278
call fcn.0040ae70
add esp, 0x24
mov byte [0x44528f], 0
lea eax, [ebp - 0x220]
push eax
push 0x445278
push str._s_file.ide_Already_Exists_at__ls
push 0x4451ec
call fcn.0040b450
add esp, 0x10
lea eax, [ebp - 0x1868]
cmp dword [ebp - 0x1854], 8
cmovae eax, dword [ebp - 0x1868]
push 1
push eax
lea eax, [ebp - 0x220]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
lea eax, [ebp - 0x1848]
push eax
call fcn.00419b80
add esp, 4
lea eax, [ebp - 0x1848]
push eax
call fcn.0041a536
movzx ecx, word [ebp - 0x1840]
add esp, 4
mov edx, eax
push ecx
push dword [edx]
mov eax, dword [edx + 0x10]
push dword [edx + 4]
inc eax
push dword [edx + 8]
push dword [edx + 0xc]
push eax
mov eax, dword [edx + 0x14]
add eax, 0x76c
push eax
push str._04d__02d__02d__02d:_02d:_02d._03d
push 0x445278
call fcn.0040ae70
add esp, 0x24
push 0x445278
push str._s_Use_cache_Ide
jmp 0x408fcb
lea eax, [ebp - 0xe30]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x408ed5
test al, 0x10
jne 0x408ed5
lea eax, [ebp - 0x1848]
push eax
call fcn.00419b80
add esp, 4
lea eax, [ebp - 0x1848]
push eax
call fcn.0041a536
movzx ecx, word [ebp - 0x1840]
add esp, 4
mov edx, eax
push ecx
push dword [edx]
mov eax, dword [edx + 0x10]
push dword [edx + 4]
inc eax
push dword [edx + 8]
push dword [edx + 0xc]
push eax
mov eax, dword [edx + 0x14]
add eax, 0x76c
push eax
push str._04d__02d__02d__02d:_02d:_02d._03d
push 0x445278
call fcn.0040ae70
add esp, 0x24
mov byte [0x44528f], 0
lea eax, [ebp - 0xe30]
push eax
push 0x445278
push str._s_Delete_Old_Ide_at__ls
push 0x4451ec
call fcn.0040b450
add esp, 0x10
lea eax, [ebp - 0xe30]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp dword [ebp - 0x1854], 8
lea ecx, [ebp - 0xe30]
push 1
lea eax, [ebp - 0x1868]
cmovae eax, dword [ebp - 0x1868]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
lea eax, [ebp - 0x1848]
push eax
call fcn.00419b80
add esp, 4
lea eax, [ebp - 0x1848]
push eax
call fcn.0041a536
movzx ecx, word [ebp - 0x1840]
add esp, 4
mov edx, eax
push ecx
push dword [edx]
mov eax, dword [edx + 0x10]
push dword [edx + 4]
inc eax
push dword [edx + 8]
push dword [edx + 0xc]
push eax
mov eax, dword [edx + 0x14]
add eax, 0x76c
push eax
push str._04d__02d__02d__02d:_02d:_02d._03d
push 0x445278
call fcn.0040ae70
add esp, 0x24
mov byte [0x44528f], 0
lea eax, [ebp - 0xe30]
push eax
push 0x445278
push str._s_Copy_New_Ide_to__ls
push 0x4451ec
call fcn.0040b450
lea eax, [ebp - 0x1848]
push eax
call fcn.00419b80
add esp, 0x14
lea eax, [ebp - 0x1848]
push eax
call fcn.0041a536
movzx ecx, word [ebp - 0x1840]
add esp, 4
mov edx, eax
push ecx
push dword [edx]
mov eax, dword [edx + 0x10]
push dword [edx + 4]
inc eax
push dword [edx + 8]
push dword [edx + 0xc]
push eax
mov eax, dword [edx + 0x14]
add eax, 0x76c
push eax
push str._04d__02d__02d__02d:_02d:_02d._03d
push 0x445278
call fcn.0040ae70
add esp, 0x24
push 0x445278
push str._s_Use_New_Ide
push 0x4451ec
mov byte [0x44528f], 0
call fcn.0040b450
add esp, 0xc
lea eax, [ebp - 0x1868]
lea ecx, [ebp - 0x18b0]
push eax
call fcn.00406040
sub esp, 0x18
mov byte [ebp - 4], 0xe
mov ecx, esp
mov dword [ebp - 0x18e4], esp
push 4
push str..idx
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
call fcn.00406a60
sub esp, 0x18
mov byte [ebp - 4], 0xf
mov ecx, esp
mov dword [ebp - 0x18e8], esp
push 4
push str..ide
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
call fcn.00406a60
mov byte [ebp - 4], 0x10
cmp dword [0x4451e4], 0
jne 0x409071
push 1
call fcn.004104e4
mov dword [ebp - 0x18e4], eax
add esp, 4
mov dword [0x4451e4], eax
lea eax, [ebp - 0x18b0]
mov byte [ebp - 4], 0xe
push eax
call fcn.004079a0
lea eax, [ebp - 0x1848]
push eax
call fcn.00419b80
add esp, 4
lea eax, [ebp - 0x1848]
push eax
call fcn.0041a536
movzx ecx, word [ebp - 0x1840]
add esp, 4
mov edx, eax
push ecx
push dword [edx]
mov eax, dword [edx + 0x10]
push dword [edx + 4]
inc eax
push dword [edx + 8]
push dword [edx + 0xc]
push eax
mov eax, dword [edx + 0x14]
add eax, 0x76c
push eax
push str._04d__02d__02d__02d:_02d:_02d._03d
push 0x445278
call fcn.0040ae70
add esp, 0x24
mov byte [0x44528f], 0
push 0x445278
push str._s_Start_decrypting
push 0x4451ec
call fcn.0040b450
add esp, 0xc
lea eax, [ebp - 0x1848]
cmp dword [ebp - 0x189c], 8
lea esi, [ebp - 0x18b0]
cmovae esi, dword [ebp - 0x18b0]
push eax
call fcn.00419b80
add esp, 4
lea eax, [ebp - 0x1848]
push eax
call fcn.0041a536
movzx ecx, word [ebp - 0x1840]
add esp, 4
mov edx, eax
push ecx
push dword [edx]
mov eax, dword [edx + 0x10]
push dword [edx + 4]
inc eax
push dword [edx + 8]
push dword [edx + 0xc]
push eax
mov eax, dword [edx + 0x14]
add eax, 0x76c
push eax
push str._04d__02d__02d__02d:_02d:_02d._03d
push 0x445278
call fcn.0040ae70
add esp, 0x24
mov byte [0x44528f], 0
push esi
push 0x445278
push str._s_decryptFile___ls
push 0x4451ec
call fcn.0040b450
add esp, 0x10
lea eax, [ebp - 0x18b0]
lea ecx, [ebp - 0x1900]
push eax
call fcn.00406040
lea eax, [ebp - 0x1868]
mov byte [ebp - 4], 0x11
push eax
lea ecx, [ebp - 0x1880]
call fcn.00406040
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x1880]
cmp dword [ebp - 0x186c], 8
lea eax, [ebp - 0x1900]
cmovae ecx, dword [ebp - 0x1880]
cmp dword [ebp - 0x18ec], 8
cmovae eax, dword [ebp - 0x1900]
push eax
mov eax, dword [edi + 0x70]
push ecx
call eax
mov edx, dword [ebp - 0x186c]
cmp edx, 8
jb 0x409213
mov ecx, dword [ebp - 0x1880]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x409209
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40950c
push edx
push ecx
call fcn.00410765
add esp, 8
mov edx, dword [ebp - 0x18ec]
xor eax, eax
mov dword [ebp - 0x1870], 0
mov dword [ebp - 0x186c], 7
mov word [ebp - 0x1880], ax
cmp edx, 8
jb 0x409270
mov ecx, dword [ebp - 0x1900]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x409266
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40950c
push edx
push ecx
call fcn.00410765
add esp, 8
cmp dword [ebp - 0x1854], 8
lea eax, [ebp - 0x1848]
lea esi, [ebp - 0x1868]
cmovae esi, dword [ebp - 0x1868]
push eax
call fcn.00419b80
add esp, 4
lea eax, [ebp - 0x1848]
push eax
call fcn.0041a536
movzx ecx, word [ebp - 0x1840]
add esp, 4
mov edx, eax
push ecx
push dword [edx]
mov eax, dword [edx + 0x10]
push dword [edx + 4]
inc eax
push dword [edx + 8]
push dword [edx + 0xc]
push eax
mov eax, dword [edx + 0x14]
add eax, 0x76c
push eax
push str._04d__02d__02d__02d:_02d:_02d._03d
push 0x445278
call fcn.0040ae70
add esp, 0x24
mov byte [0x44528f], 0
push esi
push 0x445278
push str._s_idxTargetPath___ls
push 0x4451ec
call fcn.0040b450
mov edx, dword [ebp - 0x189c]
add esp, 0x10
cmp edx, 8
jb 0x409336
mov ecx, dword [ebp - 0x18b0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40932c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409511
push edx
push ecx
call fcn.00410765
add esp, 8
mov edx, dword [ebp - 0x1854]
xor eax, eax
mov dword [ebp - 0x18a0], 0
mov dword [ebp - 0x189c], 7
mov word [ebp - 0x18b0], ax
cmp edx, 8
jb 0x409393
mov ecx, dword [ebp - 0x1868]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x409389
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409511
push edx
push ecx
call fcn.00410765
add esp, 8
mov edx, dword [ebp - 0x18cc]
xor eax, eax
mov dword [ebp - 0x1858], 0
mov dword [ebp - 0x1854], 7
mov word [ebp - 0x1868], ax
cmp edx, 8
jb 0x4093f0
mov ecx, dword [ebp - 0x18e0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4093e6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409511
push edx
push ecx
call fcn.00410765
add esp, 8
mov edx, dword [ebp - 0x18b4]
cmp edx, 8
jb 0x409430
mov ecx, dword [ebp - 0x18c8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x409426
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409511
push edx
push ecx
call fcn.00410765
add esp, 8
mov edx, dword [ebx + 0x1c]
xor eax, eax
mov dword [ebp - 0x18b8], 0
mov dword [ebp - 0x18b4], 7
mov word [ebp - 0x18c8], ax
cmp edx, 8
jb 0x409487
mov ecx, dword [ebx + 8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40947d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409511
push edx
push ecx
call fcn.00410765
add esp, 8
mov edx, dword [ebx + 0x34]
xor eax, eax
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 7
mov word [ebx + 8], ax
cmp edx, 8
jb 0x4094d1
mov ecx, dword [ebx + 0x20]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4094c7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409511
push edx
push ecx
call fcn.00410765
add esp, 8
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004102c8
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x30
call fcn.004012e0
call fcn.004196e2
call fcn.004012e0
call fcn.004196e2
call fcn.004196e2
call fcn.004196e2
call fcn.004196e2
int3