Function at 0x407270
Capabilities:
Check mutex on windows
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x598
push ebx
push esi
push edi
lea edi, [ebp - 0x598]
mov ecx, 0x166
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
mov dword [ebp - 8], 0
mov eax, dword [ebp + 8]
and eax, 0xffff
mov dword [ebp - 0x558], eax
mov ecx, dword [ebp - 0x558]
sub ecx, 1
mov dword [ebp - 0x558], ecx
cmp dword [ebp - 0x558], 0xf9
ja case.0x4072d0.86
mov eax, dword [ebp - 0x558]
xor edx, edx
mov dl, byte [eax + 0x40b175]
jmp dword [edx*4 + 0x40b019]
mov ecx, dword [ebp + 0x28]
push ecx
mov edx, dword [ebp + 0x1c]
mov ax, word [edx]
push eax
mov ecx, dword [ebp + 0x18]
mov dx, word [ecx]
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.00406f10
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x407307
xor eax, eax
jmp 0x40b003
jmp case.0x4072d0.86
mov edx, dword [ebp + 0x28]
push edx
mov eax, dword [ebp + 0x1c]
mov cx, word [eax]
push ecx
mov edx, dword [ebp + 0x18]
mov ax, word [edx]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.004070c0
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x40733c
xor eax, eax
jmp 0x40b003
jmp case.0x4072d0.86
mov eax, dword [ebp + 0x28]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00406d90
test eax, eax
je 0x407361
mov eax, 8
jmp 0x40b003
xor eax, eax
jmp 0x40b003
call fcn.00401d90
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jg 0x40737e
call fcn.00401d90
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jg 0x4073de
call fcn.00401ad0
lea eax, [ebp - 0x44]
push eax
call fcn.0040d500
add esp, 4
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x4073d4
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 4]
mov dword [ecx], edx
mov eax, dword [ebp + 0x14]
cmp dword [eax], 1
jne 0x4073cd
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 0
mov edx, dword [ebp - 0x44]
and edx, 0xff
mov eax, dword [ebp + 0x10]
mov dword [eax], edx
mov ecx, dword [ebp + 0xc]
mov word [ecx], 0
xor eax, eax
jmp 0x40b003
mov eax, 3
jmp 0x40b003
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 4]
mov dword [edx], eax
mov ecx, dword [ebp + 0x10]
push ecx
push 0
push 0
call fcn.00401dc0
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0xa0100001
jne 0x407416
push str.No_such_device.
call fcn.004019f0
add esp, 4
mov eax, 3
jmp 0x40b003
mov edx, dword [ebp + 0xc]
mov ax, word [ebp - 4]
mov word [edx], ax
mov dword [0x421c98], 1
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.00404db0
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x40744f
mov eax, 3
jmp 0x40b003
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
imul edx, edx, 0x140
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
mov dword [edx + 0x421dd4], ecx
xor eax, eax
jmp 0x40b003
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.00402fe0
test eax, eax
je 0x40748f
mov eax, 8
jmp 0x40b003
xor eax, eax
jmp 0x40b003
push 4
mov edx, dword [ebp + 0x18]
push edx
lea eax, [ebp - 0x20]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 4
mov ecx, dword [ebp + 0x1c]
push ecx
lea edx, [ebp - 0x1c]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 4
mov eax, dword [ebp + 0x20]
push eax
lea ecx, [ebp - 0x18]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 4
mov edx, dword [ebp + 0x24]
push edx
lea eax, [ebp - 0x14]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
lea ecx, [ebp - 0x20]
push ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.00405460
test eax, eax
je 0x4074fe
mov eax, 0x1d
jmp 0x40b003
xor eax, eax
jmp 0x40b003
push 4
mov ecx, dword [ebp + 0x18]
push ecx
lea edx, [ebp - 0x20]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 4
mov eax, dword [ebp + 0x1c]
push eax
lea ecx, [ebp - 0x1c]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 4
mov edx, dword [ebp + 0x20]
push edx
lea eax, [ebp - 0x18]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 4
mov ecx, dword [ebp + 0x24]
push ecx
lea edx, [ebp - 0x14]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
lea eax, [ebp - 0x20]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00405640
test eax, eax
je 0x40756d
mov eax, 0x1d
jmp 0x40b003
xor eax, eax
jmp 0x40b003
push 4
mov eax, dword [ebp + 0x18]
push eax
lea ecx, [ebp - 0x20]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 4
mov edx, dword [ebp + 0x1c]
push edx
lea eax, [ebp - 0x1c]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 4
mov ecx, dword [ebp + 0x20]
push ecx
lea edx, [ebp - 0x18]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 4
mov eax, dword [ebp + 0x24]
push eax
lea ecx, [ebp - 0x14]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
lea edx, [ebp - 0x20]
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.004057c0
test eax, eax
je 0x4075dc
mov eax, 5
jmp 0x40b003
xor eax, eax
jmp 0x40b003
cmp dword [0x421c94], 0
jne 0x4075f6
mov eax, 0x12
jmp 0x40b003
mov edx, dword [0x421c98]
cmp edx, dword [0x421c94]
jne 0x40760e
mov eax, 0x11
jmp 0x40b003
cmp dword [0x421c98], 0
jne 0x407621
mov eax, 0x12
jmp 0x40b003
mov eax, dword [ebp + 0x10]
push eax
push 0
push 0
call fcn.00401dc0
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0xa0100001
jne 0x407651
push str.No_such_device.
call fcn.004019f0
add esp, 4
mov eax, 3
jmp 0x40b003
mov ecx, dword [ebp + 0xc]
mov dx, word [ebp - 4]
mov word [ecx], dx
mov eax, dword [0x421c98]
add eax, 1
mov dword [0x421c98], eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.00404db0
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x40768d
mov eax, 3
jmp 0x40b003
xor eax, eax
jmp 0x40b003
mov esi, esp
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp esi, esp
call sub.MSVCRT.dll__chkesp
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
imul edx, edx, 0x140
add edx, 0x421ca8
mov esi, esp
push edx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
cmp esi, esp
call sub.MSVCRT.dll__chkesp
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
imul edx, edx, 0x140
mov dword [edx + 0x421cc8], eax
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call sub.MSVCRT.dll__chkesp
cmp eax, 0xb7
jne 0x407701
mov eax, 0x29
jmp 0x40b003
xor eax, eax
jmp 0x40b003
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
imul ecx, ecx, 0x140
cmp dword [ecx + 0x421cc8], 0
jne 0x407726
xor eax, eax
jmp 0x40b003
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
imul eax, eax, 0x140
mov esi, esp
mov ecx, dword [eax + 0x421cc8]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp esi, esp
call sub.MSVCRT.dll__chkesp
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
imul eax, eax, 0x140
mov esi, esp
mov ecx, dword [eax + 0x421cc8]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp esi, esp
call sub.MSVCRT.dll__chkesp
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
imul eax, eax, 0x140
mov dword [eax + 0x421cc8], 0
xor eax, eax
jmp 0x40b003
mov esi, esp
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp esi, esp
call sub.MSVCRT.dll__chkesp
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
cmp edx, 0x20
jl 0x4077b5
mov eax, 0xa0100002
jmp 0x40b003
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
imul ecx, ecx, 0x140
add ecx, 0x421ca8
mov esi, esp
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
cmp esi, esp
call sub.MSVCRT.dll__chkesp
mov dword [ebp - 0x48], eax
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call sub.MSVCRT.dll__chkesp
cmp eax, 0xb7
jne 0x407826
mov esi, esp
mov edx, dword [ebp - 0x48]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp esi, esp
call sub.MSVCRT.dll__chkesp
mov esi, esp
mov eax, dword [ebp - 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp esi, esp
call sub.MSVCRT.dll__chkesp
mov eax, 0x29
jmp 0x40b003
mov esi, esp
mov ecx, dword [ebp - 0x48]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp esi, esp
call sub.MSVCRT.dll__chkesp
mov esi, esp
mov edx, dword [ebp - 0x48]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp esi, esp
call sub.MSVCRT.dll__chkesp
push 4
mov eax, dword [ebp + 0x18]
push eax
lea ecx, [ebp - 0x20]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 4
mov edx, dword [ebp + 0x1c]
push edx
lea eax, [ebp - 0x1c]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 4
mov ecx, dword [ebp + 0x20]
push ecx
lea edx, [ebp - 0x18]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 4
mov eax, dword [ebp + 0x24]
push eax
lea ecx, [ebp - 0x14]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
imul eax, eax, 0x140
movsx ecx, byte [eax + 0x421de1]
cmp ecx, 0x57
jne 0x4078b5
xor eax, eax
jmp 0x40b003
lea edx, [ebp - 0x20]
push edx
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.00402b60
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0xa0100024
jne 0x4078e3
mov eax, 0x2a
jmp 0x40b003
cmp dword [ebp - 4], 0
je 0x4078f3
mov eax, 5
jmp 0x40b003
push 4
lea ecx, [ebp - 0x10]
push ecx
mov edx, dword [ebp + 0x10]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
xor eax, eax
jmp 0x40b003
mov byte [ebp - 0x70], 1
mov esi, esp
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp esi, esp
call sub.MSVCRT.dll__chkesp
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
imul ecx, ecx, 0x140
add ecx, 0x421ca8
mov esi, esp
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
cmp esi, esp
call sub.MSVCRT.dll__chkesp
mov dword [ebp - 0x74], eax
mov esi, esp
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, esp
call sub.MSVCRT.dll__chkesp
cmp eax, 0xb7
jne 0x407992
mov esi, esp
mov edx, dword [ebp - 0x74]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp esi, esp
call sub.MSVCRT.dll__chkesp
mov esi, esp
mov eax, dword [ebp - 0x74]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp esi, esp
call sub.MSVCRT.dll__chkesp
mov eax, 0x29
jmp 0x40b003
mov esi, esp
mov ecx, dword [ebp - 0x74]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp esi, esp
call sub.MSVCRT.dll__chkesp
mov esi, esp
mov edx, dword [ebp - 0x74]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp esi, esp
call sub.MSVCRT.dll__chkesp
push 4
mov eax, dword [ebp + 0x18]
push eax
lea ecx, [ebp - 0x20]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 4
mov edx, dword [ebp + 0x1c]
push edx
lea eax, [ebp - 0x1c]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 4
mov ecx, dword [ebp + 0x20]
push ecx
lea edx, [ebp - 0x18]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 4
mov eax, dword [ebp + 0x24]
push eax
lea ecx, [ebp - 0x14]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.00402980
mov cl, byte [ebp - 0x70]
push ecx
lea edx, [ebp - 0x20]
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.00402da0
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0xa0100024
jne 0x407a3a
mov eax, 0x2a
jmp 0x40b003
cmp dword [ebp - 4], 0
je 0x407a4a
mov eax, 5
jmp 0x40b003
push 4
lea edx, [ebp - 0x10]
push edx
mov eax, dword [ebp + 0x10]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
xor eax, eax
jmp 0x40b003
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
imul edx, edx, 0x140
movsx eax, byte [edx + 0x421de1]
cmp eax, 0x57
jne 0x407a92
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00401a10
xor eax, eax
jmp 0x40b003
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.00402670
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.00401a10
xor eax, eax
jmp 0x40b003
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00402820
jmp 0x40b003
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.00402980
jmp 0x40b003
mov dword [ebp - 0x84], 0
mov edx, dword [ebp + 0x18]
xor eax, eax
mov ax, word [edx]
cmp eax, 0x1000
jle 0x407afe
mov eax, 7
jmp 0x40b003
mov ecx, dword [ebp + 0x18]
xor edx, edx
mov dx, word [ecx]
mov eax, dword [ebp + 0x1c]
xor ecx, ecx
mov cx, word [eax]
add edx, ecx
cmp edx, 0x1000
jle 0x407b22
mov eax, 7
jmp 0x40b003
mov edx, dword [ebp + 0x18]
xor eax, eax
mov ax, word [edx]
test eax, eax
jl 0x407b3a
mov ecx, dword [ebp + 0x1c]
xor edx, edx
mov dx, word [ecx]
test edx, edx
jge 0x407b44
mov eax, 7
jmp 0x40b003
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
imul ecx, ecx, 0x140
movsx edx, byte [ecx + 0x421de1]
cmp edx, 0x57
jne 0x407c59
mov dword [ebp - 0xa4], 0
mov eax, dword [str.C:_path_Time.txt]
mov dword [ebp - 0x1a4], eax
mov ecx, dword [0x41ece4]
mov dword [ebp - 0x1a0], ecx
mov edx, dword [0x41ece8]
mov dword [ebp - 0x19c], edx
mov eax, dword [0x41ecec]
mov dword [ebp - 0x198], eax
mov cx, word [0x41ecf0]
mov word [ebp - 0x194], cx
mov dl, byte [0x41ecf2]
mov byte [ebp - 0x192], dl
mov ecx, 0x3b
xor eax, eax
lea edi, [ebp - 0x191]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
imul ecx, ecx, 0x140
mov dl, byte [ecx + 0x421de2]
mov byte [ebp - 0x1a4], dl
push 0x41ecdc
lea eax, [ebp - 0x1a4]
push eax
call sub.MSVCRT.dll_fopen
add esp, 8
mov dword [ebp - 0xa4], eax
cmp dword [ebp - 0xa4], 0
jne 0x407c0b
mov eax, 8
jmp 0x40b003
push 0
mov ecx, dword [ebp + 0x18]
xor edx, edx
mov dx, word [ecx]
push edx
mov eax, dword [ebp - 0xa4]
push eax
call sub.MSVCRT.dll_fseek
add esp, 0xc
mov ecx, dword [ebp - 0xa4]
push ecx
push 1
mov edx, dword [ebp + 0x1c]
xor eax, eax
mov ax, word [edx]
push eax
mov ecx, dword [ebp + 0x28]
push ecx
call sub.MSVCRT.dll_fread
add esp, 0x10
mov edx, dword [ebp - 0xa4]
push edx
call sub.MSVCRT.dll_fclose
add esp, 4
xor eax, eax
jmp 0x40b003
mov eax, dword [ebp + 0x18]
xor ecx, ecx
mov cx, word [eax]
add ecx, 0x10
mov dword [ebp - 0x9c], ecx
mov edx, dword [ebp + 0x1c]
xor eax, eax
mov ax, word [edx]
mov dword [ebp - 0xa0], eax
mov ecx, dword [ebp - 0x9c]
and ecx, 0x8000000f
jns 0x407c8b
dec ecx
or ecx, 0xfffffff0
inc ecx
test ecx, ecx
je 0x407d90
mov edx, dword [ebp - 0x9c]
mov dword [ebp - 0x78], edx
mov eax, dword [ebp - 0x78]
cdq
mov ecx, 0x1e0
idiv ecx
add eax, 1
mov byte [ebp - 0x80], al
mov eax, dword [ebp - 0x9c]
cdq
and edx, 0xf
add eax, edx
sar eax, 4
shl eax, 4
mov dword [ebp - 0x78], eax
mov edx, dword [ebp - 0x80]
and edx, 0xff
sub edx, 1
imul edx, edx, 0x1e0
mov eax, dword [ebp - 0x78]
sub eax, edx
mov dword [ebp - 0x7c], eax
lea ecx, [ebp - 0x94]
push ecx
mov edx, dword [ebp - 0x7c]
push edx
mov al, byte [ebp - 0x80]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.004045a0
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0
je 0x407d12
mov eax, 0xa
jmp 0x40b003
mov eax, dword [ebp - 0x9c]
sub eax, dword [ebp - 0x78]
mov dword [ebp - 0x1a8], eax
jmp 0x407d41
mov ecx, dword [ebp - 0x1a8]
add ecx, 1
mov dword [ebp - 0x1a8], ecx
mov edx, dword [ebp - 0x84]
add edx, 1
mov dword [ebp - 0x84], edx
cmp dword [ebp - 0x1a8], 0x10
jge 0x407d72
mov eax, dword [ebp - 0x84]
cmp eax, dword [ebp - 0xa0]
jge 0x407d72
mov ecx, dword [ebp + 0x28]
add ecx, dword [ebp - 0x84]
mov edx, dword [ebp - 0x1a8]
mov al, byte [ebp + edx - 0x94]
mov byte [ecx], al
jmp 0x407d23
cmp dword [ebp - 0x98], 0
je 0x407d85
mov eax, 0xa
jmp 0x40b003
mov ecx, dword [ebp - 0x78]
add ecx, 0x10
mov dword [ebp - 0x78], ecx
jmp 0x407d99
mov edx, dword [ebp - 0x9c]
mov dword [ebp - 0x78], edx
mov eax, dword [ebp - 0x9c]
add eax, dword [ebp - 0xa0]
sub eax, dword [ebp - 0x78]
cdq
and edx, 0xf
add eax, edx
sar eax, 4
mov dword [ebp - 0x1ac], eax
mov dword [ebp - 0x1b0], 0
mov eax, dword [ebp - 0x1b0]
cmp eax, dword [ebp - 0x1ac]
jge 0x407ead
mov eax, dword [ebp - 0x78]
cdq
mov ecx, 0x1e0
idiv ecx
add eax, 1
mov byte [ebp - 0x80], al
mov edx, dword [ebp - 0x80]
and edx, 0xff
sub edx, 1
imul edx, edx, 0x1e0
mov eax, dword [ebp - 0x78]
sub eax, edx
mov dword [ebp - 0x7c], eax
mov ecx, dword [ebp - 0x78]
sub ecx, dword [ebp - 0x9c]
mov dword [ebp - 0x84], ecx
lea edx, [ebp - 0x94]
push edx
mov eax, dword [ebp - 0x7c]
push eax
mov cl, byte [ebp - 0x80]
push ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.004045a0
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0
je 0x407e43
mov eax, 0xa
jmp 0x40b003
mov dword [ebp - 0x1b4], 0
jmp 0x407e5e
mov ecx, dword [ebp - 0x1b4]
add ecx, 1
mov dword [ebp - 0x1b4], ecx
cmp dword [ebp - 0x1b4], 0x10
jge 0x407e90
mov edx, dword [ebp + 0x28]
add edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x1b4]
mov cl, byte [ebp + eax - 0x94]
mov byte [edx], cl
mov edx, dword [ebp - 0x84]
add edx, 1
mov dword [ebp - 0x84], edx
jmp 0x407e4f
mov eax, dword [ebp - 0x1b0]
add eax, 1
mov dword [ebp - 0x1b0], eax
mov ecx, dword [ebp - 0x78]
add ecx, 0x10
mov dword [ebp - 0x78], ecx
jmp 0x407dc1
mov edx, dword [ebp - 0x9c]
add edx, dword [ebp - 0xa0]
cmp edx, dword [ebp - 0x78]
jle 0x407fae
mov eax, dword [ebp - 0x78]
cdq
mov ecx, 0x1e0
idiv ecx
add eax, 1
mov byte [ebp - 0x80], al
mov edx, dword [ebp - 0x80]
and edx, 0xff
sub edx, 1
imul edx, edx, 0x1e0
mov eax, dword [ebp - 0x78]
sub eax, edx
mov dword [ebp - 0x7c], eax
mov ecx, dword [ebp - 0x78]
sub ecx, dword [ebp - 0x9c]
mov dword [ebp - 0x84], ecx
lea edx, [ebp - 0x94]
push edx
mov eax, dword [ebp - 0x7c]
push eax
mov cl, byte [ebp - 0x80]
push ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.004045a0
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0
je 0x407f32
mov eax, 0xa
jmp 0x40b003
mov dword [ebp - 0x1b8], 0
jmp 0x407f4d
mov ecx, dword [ebp - 0x1b8]
add ecx, 1
mov dword [ebp - 0x1b8], ecx
mov edx, dword [ebp - 0x9c]
add edx, dword [ebp - 0xa0]
sub edx, dword [ebp - 0x78]
cmp dword [ebp - 0x1b8], edx
jge 0x407f9b
mov eax, dword [ebp - 0x84]
cmp eax, dword [ebp - 0xa0]
jge 0x407f9b
mov ecx, dword [ebp + 0x28]
add ecx, dword [ebp - 0x84]
mov edx, dword [ebp - 0x1b8]
mov al, byte [ebp + edx - 0x94]
mov byte [ecx], al
mov ecx, dword [ebp - 0x84]
add ecx, 1
mov dword [ebp - 0x84], ecx
jmp 0x407f3e
cmp dword [ebp - 0x98], 0
je 0x407fae
mov eax, 0xa
jmp 0x40b003
xor eax, eax
jmp 0x40b003
mov dword [ebp - 0x1c8], 0
mov edx, dword [ebp + 0x18]
xor eax, eax
mov ax, word [edx]
cmp eax, 0x1000
jle 0x407fd8
mov eax, 7
jmp 0x40b003
mov ecx, dword [ebp + 0x18]
xor edx, edx
mov dx, word [ecx]
mov eax, dword [ebp + 0x1c]
xor ecx, ecx
mov cx, word [eax]
add edx, ecx
cmp edx, 0x1000
jle 0x407ffc
mov eax, 7
jmp 0x40b003
mov edx, dword [ebp + 0x18]
xor eax, eax
mov ax, word [edx]
test eax, eax
jl 0x408014
mov ecx, dword [ebp + 0x1c]
xor edx, edx
mov dx, word [ecx]
test edx, edx
jge 0x40801e
mov eax, 7
jmp 0x40b003
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
imul ecx, ecx, 0x140
movsx edx, byte [ecx + 0x421de1]
cmp edx, 0x57
jne 0x408133
mov dword [ebp - 0x1e8], 0
mov eax, dword [str.C:_path_Time.txt]
mov dword [ebp - 0x2e8], eax
mov ecx, dword [0x41ece4]
mov dword [ebp - 0x2e4], ecx
mov edx, dword [0x41ece8]
mov dword [ebp - 0x2e0], edx
mov eax, dword [0x41ecec]
mov dword [ebp - 0x2dc], eax
mov cx, word [0x41ecf0]
mov word [ebp - 0x2d8], cx
mov dl, byte [0x41ecf2]
mov byte [ebp - 0x2d6], dl
mov ecx, 0x3b
xor eax, eax
lea edi, [ebp - 0x2d5]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
imul ecx, ecx, 0x140
mov dl, byte [ecx + 0x421de2]
mov byte [ebp - 0x2e8], dl
push 0x41ecd8
lea eax, [ebp - 0x2e8]
push eax
call sub.MSVCRT.dll_fopen
add esp, 8
mov dword [ebp - 0x1e8], eax
cmp dword [ebp - 0x1e8], 0
jne 0x4080e5
mov eax, 8
jmp 0x40b003
push 0
mov ecx, dword [ebp + 0x18]
xor edx, edx
mov dx, word [ecx]
push edx
mov eax, dword [ebp - 0x1e8]
push eax
call sub.MSVCRT.dll_fseek
add esp, 0xc
mov ecx, dword [ebp - 0x1e8]
push ecx
push 1
mov edx, dword [ebp + 0x1c]
xor eax, eax
mov ax, word [edx]
push eax
mov ecx, dword [ebp + 0x28]
push ecx
call sub.MSVCRT.dll_fwrite
add esp, 0x10
mov edx, dword [ebp - 0x1e8]
push edx
call sub.MSVCRT.dll_fclose
add esp, 4
xor eax, eax
jmp 0x40b003
mov eax, dword [ebp + 0x18]
xor ecx, ecx
mov cx, word [eax]
add ecx, 0x10
mov dword [ebp - 0x1e0], ecx
mov edx, dword [ebp + 0x1c]
xor eax, eax
mov ax, word [edx]
mov dword [ebp - 0x1e4], eax
mov ecx, dword [ebp - 0x1e0]
and ecx, 0x8000000f
jns 0x408165
dec ecx
or ecx, 0xfffffff0
inc ecx
test ecx, ecx
je 0x4082b7
mov edx, dword [ebp - 0x1e0]
mov dword [ebp - 0x1bc], edx
mov eax, dword [ebp - 0x1bc]
cdq
mov ecx, 0x1e0
idiv ecx
add eax, 1
mov byte [ebp - 0x1c4], al
mov eax, dword [ebp - 0x1e0]
cdq
and edx, 0xf
add eax, edx
sar eax, 4
shl eax, 4
mov dword [ebp - 0x1bc], eax
mov edx, dword [ebp - 0x1c4]
and edx, 0xff
sub edx, 1
imul edx, edx, 0x1e0
mov eax, dword [ebp - 0x1bc]
sub eax, edx
mov dword [ebp - 0x1c0], eax
lea ecx, [ebp - 0x1d8]
push ecx
mov edx, dword [ebp - 0x1c0]
push edx
mov al, byte [ebp - 0x1c4]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.004045a0
mov dword [ebp - 0x1dc], eax
cmp dword [ebp - 0x1dc], 0
je 0x408207
mov eax, 0xb
jmp 0x40b003
mov eax, dword [ebp - 0x1e0]
sub eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x2ec], eax
jmp 0x408239
mov ecx, dword [ebp - 0x2ec]
add ecx, 1
mov dword [ebp - 0x2ec], ecx
mov edx, dword [ebp - 0x1c8]
add edx, 1
mov dword [ebp - 0x1c8], edx
cmp dword [ebp - 0x2ec], 0x10
jge 0x40826a
mov eax, dword [ebp - 0x1c8]
cmp eax, dword [ebp - 0x1e4]
jge 0x40826a
mov ecx, dword [ebp + 0x28]
add ecx, dword [ebp - 0x1c8]
mov edx, dword [ebp - 0x2ec]
mov al, byte [ecx]
mov byte [ebp + edx - 0x1d8], al
jmp 0x40821b
lea ecx, [ebp - 0x1d8]
push ecx
mov edx, dword [ebp - 0x1c0]
push edx
mov al, byte [ebp - 0x1c4]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00404390
mov dword [ebp - 0x1dc], eax
cmp dword [ebp - 0x1dc], 0
je 0x4082a6
mov eax, 0xb
jmp 0x40b003
mov eax, dword [ebp - 0x1bc]
add eax, 0x10
mov dword [ebp - 0x1bc], eax
jmp 0x4082c3
mov ecx, dword [ebp - 0x1e0]
mov dword [ebp - 0x1bc], ecx
mov eax, dword [ebp - 0x1e0]
add eax, dword [ebp - 0x1e4]
sub eax, dword [ebp - 0x1bc]
cdq
and edx, 0xf
add eax, edx
sar eax, 4
mov dword [ebp - 0x2f0], eax
mov dword [ebp - 0x2f4], 0
mov edx, dword [ebp - 0x2f4]
cmp edx, dword [ebp - 0x2f0]
jge 0x4083f8
mov eax, dword [ebp - 0x1bc]
cdq
mov ecx, 0x1e0
idiv ecx
add eax, 1
mov byte [ebp - 0x1c4], al
mov edx, dword [ebp - 0x1c4]
and edx, 0xff
sub edx, 1
imul edx, edx, 0x1e0
mov eax, dword [ebp - 0x1bc]
sub eax, edx
mov dword [ebp - 0x1c0], eax
mov ecx, dword [ebp - 0x1bc]
sub ecx, dword [ebp - 0x1e0]
mov dword [ebp - 0x1c8], ecx
mov dword [ebp - 0x2f8], 0
jmp 0x408367
mov edx, dword [ebp - 0x2f8]
add edx, 1
mov dword [ebp - 0x2f8], edx
cmp dword [ebp - 0x2f8], 0x10
jge 0x408399
mov eax, dword [ebp + 0x28]
add eax, dword [ebp - 0x1c8]
mov ecx, dword [ebp - 0x2f8]
mov dl, byte [eax]
mov byte [ebp + ecx - 0x1d8], dl
mov eax, dword [ebp - 0x1c8]
add eax, 1
mov dword [ebp - 0x1c8], eax
jmp 0x408358
lea ecx, [ebp - 0x1d8]
push ecx
mov edx, dword [ebp - 0x1c0]
push edx
mov al, byte [ebp - 0x1c4]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00404390
mov dword [ebp - 0x1dc], eax
cmp dword [ebp - 0x1dc], 0
je 0x4083d5
mov eax, 0xb
jmp 0x40b003
mov eax, dword [ebp - 0x2f4]
add eax, 1
mov dword [ebp - 0x2f4], eax
mov ecx, dword [ebp - 0x1bc]
add ecx, 0x10
mov dword [ebp - 0x1bc], ecx
jmp 0x4082ee
mov edx, dword [ebp - 0x1e0]
add edx, dword [ebp - 0x1e4]
cmp edx, dword [ebp - 0x1bc]
jle 0x408554
mov eax, dword [ebp - 0x1bc]
cdq
mov ecx, 0x1e0
idiv ecx
add eax, 1
mov byte [ebp - 0x1c4], al
mov edx, dword [ebp - 0x1c4]
and edx, 0xff
sub edx, 1
imul edx, edx, 0x1e0
mov eax, dword [ebp - 0x1bc]
sub eax, edx
mov dword [ebp - 0x1c0], eax
mov ecx, dword [ebp - 0x1bc]
sub ecx, dword [ebp - 0x1e0]
mov dword [ebp - 0x1c8], ecx
lea edx, [ebp - 0x1d8]
push edx
mov eax, dword [ebp - 0x1c0]
push eax
mov cl, byte [ebp - 0x1c4]
push ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.004045a0
mov dword [ebp - 0x1dc], eax
cmp dword [ebp - 0x1dc], 0
je 0x408498
mov eax, 0xb
jmp 0x40b003
mov dword [ebp - 0x2fc], 0
jmp 0x4084b3
mov ecx, dword [ebp - 0x2fc]
add ecx, 1
mov dword [ebp - 0x2fc], ecx
mov edx, dword [ebp - 0x1e0]
add edx, dword [ebp - 0x1e4]
sub edx, dword [ebp - 0x1bc]
cmp dword [ebp - 0x2fc], edx
jge 0x40851e
mov eax, dword [ebp - 0x1e0]
add eax, dword [ebp - 0x1e4]
sub eax, dword [ebp - 0x1bc]
cmp dword [ebp - 0x2fc], eax
jge 0x40851e
mov ecx, dword [ebp - 0x1c8]
cmp ecx, dword [ebp - 0x1e4]
jge 0x40851e
mov edx, dword [ebp + 0x28]
add edx, dword [ebp - 0x1c8]
mov eax, dword [ebp - 0x2fc]
mov cl, byte [edx]
mov byte [ebp + eax - 0x1d8], cl
mov edx, dword [ebp - 0x1c8]
add edx, 1
mov dword [ebp - 0x1c8], edx
jmp 0x4084a4
lea eax, [ebp - 0x1d8]
push eax
mov ecx, dword [ebp - 0x1c0]
push ecx
mov dl, byte [ebp - 0x1c4]
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.00404390
cmp dword [ebp - 0x1dc], 0
je 0x408554
mov eax, 0xb
jmp 0x40b003
xor eax, eax
jmp 0x40b003
lea edx, [ebp - 0x10]
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.00402340
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jge 0x408580
mov eax, 0xc
jmp 0x40b003
push 2
lea edx, [ebp - 0x10]
push edx
mov eax, dword [ebp + 0x18]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
lea ecx, [ebp - 0xe]
push ecx
mov edx, dword [ebp + 0x1c]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
lea eax, [ebp - 0xc]
push eax
mov ecx, dword [ebp + 0x20]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
lea edx, [ebp - 0xa]
push edx
mov eax, dword [ebp + 0x24]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
xor eax, eax
jmp 0x40b003
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov dword [ebp - 0x300], edx
lea eax, [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x300]
push ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.004034b0
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jge 0x408606
mov eax, 0xd
jmp 0x40b003
push 2
lea ecx, [ebp - 0x10]
push ecx
mov edx, dword [ebp + 0x18]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
lea eax, [ebp - 0xe]
push eax
mov ecx, dword [ebp + 0x1c]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
lea edx, [ebp - 0xc]
push edx
mov eax, dword [ebp + 0x20]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
lea ecx, [ebp - 0xa]
push ecx
mov edx, dword [ebp + 0x24]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov eax, dword [ebp + 0x18]
push eax
lea ecx, [ebp - 0x304]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov dl, byte [ebp - 0x304]
mov byte [ebp - 0x302], dl
mov al, byte [ebp - 0x303]
mov byte [ebp - 0x304], al
mov cl, byte [ebp - 0x302]
mov byte [ebp - 0x303], cl
push 2
lea edx, [ebp - 0x304]
push edx
mov eax, dword [ebp + 0x18]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov ecx, dword [ebp + 0x1c]
push ecx
lea edx, [ebp - 0x304]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov al, byte [ebp - 0x304]
mov byte [ebp - 0x302], al
mov cl, byte [ebp - 0x303]
mov byte [ebp - 0x304], cl
mov dl, byte [ebp - 0x302]
mov byte [ebp - 0x303], dl
push 2
lea eax, [ebp - 0x304]
push eax
mov ecx, dword [ebp + 0x1c]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov edx, dword [ebp + 0x20]
push edx
lea eax, [ebp - 0x304]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov cl, byte [ebp - 0x304]
mov byte [ebp - 0x302], cl
mov dl, byte [ebp - 0x303]
mov byte [ebp - 0x304], dl
mov al, byte [ebp - 0x302]
mov byte [ebp - 0x303], al
push 2
lea ecx, [ebp - 0x304]
push ecx
mov edx, dword [ebp + 0x20]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov eax, dword [ebp + 0x24]
push eax
lea ecx, [ebp - 0x304]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov dl, byte [ebp - 0x304]
mov byte [ebp - 0x302], dl
mov al, byte [ebp - 0x303]
mov byte [ebp - 0x304], al
mov cl, byte [ebp - 0x302]
mov byte [ebp - 0x303], cl
push 2
lea edx, [ebp - 0x304]
push edx
mov eax, dword [ebp + 0x24]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
xor eax, eax
jmp 0x40b003
push 4
mov ecx, dword [ebp + 0x10]
push ecx
lea edx, [ebp - 0x24]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
lea eax, [ebp - 0x24]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.004021a0
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jge 0x4087c4
mov eax, 6
jmp 0x40b003
xor eax, eax
jmp 0x40b003
lea eax, [ebp - 0x24]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00402000
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jge 0x4087f0
mov eax, 0xf
jmp 0x40b003
push 4
lea eax, [ebp - 0x24]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
xor eax, eax
jmp 0x40b003
mov edx, dword [ebp + 0x18]
xor eax, eax
mov ax, word [edx]
cmp eax, 0xff
jle 0x408822
mov eax, 7
jmp 0x40b003
mov ecx, dword [ebp + 0x18]
xor edx, edx
mov dx, word [ecx]
mov dword [ebp - 0x308], edx
mov eax, dword [ebp + 0x20]
mov cl, byte [eax]
mov byte [ebp - 0x30c], cl
mov edx, dword [ebp + 0x1c]
mov ax, word [edx]
mov word [ebp - 0x310], ax
mov cx, word [ebp - 0x310]
push ecx
mov dl, byte [ebp - 0x30c]
push edx
mov eax, dword [ebp - 0x308]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00404bc0
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jge 0x40887f
mov eax, 0x13
jmp 0x40b003
xor eax, eax
jmp 0x40b003
mov eax, dword [ebp + 0x18]
xor ecx, ecx
mov cx, word [eax]
cmp ecx, 0xff
jle 0x4088a0
mov eax, 7
jmp 0x40b003
mov byte [ebp - 0x314], 0
mov byte [ebp - 0x318], 0
lea edx, [ebp - 0x318]
push edx
lea eax, [ebp - 0x314]
push eax
mov ecx, dword [ebp + 0x18]
mov dl, byte [ecx]
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.00405100
mov dword [ebp - 4], eax
movzx dx, byte [ebp - 0x314]
mov eax, dword [ebp + 0x1c]
mov word [eax], dx
movzx cx, byte [ebp - 0x318]
mov edx, dword [ebp + 0x20]
mov word [edx], cx
cmp dword [ebp - 4], 0
jge 0x4088ff
mov eax, 0x13
jmp 0x40b003
xor eax, eax
jmp 0x40b003
mov eax, dword [ebp + 0x18]
xor ecx, ecx
mov cx, word [eax]
test ecx, ecx
jl 0x40891f
mov edx, dword [ebp + 0x18]
xor eax, eax
mov ax, word [edx]
cmp eax, 0x7f
jle 0x408929
mov eax, 7
jmp 0x40b003
mov ecx, dword [ebp + 0x28]
push ecx
call fcn.00406100
add esp, 4
and eax, 0xffff
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x40894b
mov eax, dword [ebp - 4]
jmp 0x40b003
mov edx, dword [ebp + 0x28]
push edx
mov eax, dword [ebp + 0x18]
mov cx, word [eax]
push ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.00406600
add esp, 0xc
test eax, eax
jne 0x408975
mov eax, 0xffff
jmp 0x40b003
xor eax, eax
jmp 0x40b003
mov byte [ebp - 0x31c], 1
mov ecx, dword [ebp + 0x14]
mov dl, byte [ecx]
mov byte [ebp - 0x320], dl
mov eax, dword [ebp + 0x10]
mov cl, byte [eax]
mov byte [ebp - 0x324], cl
mov edx, dword [ebp + 0x10]
cmp dword [edx], 0x7f
jbe 0x4089ab
mov eax, 7
jmp 0x40b003
mov eax, dword [ebp - 0x320]
and eax, 0xff
cmp eax, 0xff
jle 0x4089c7
mov eax, 7
jmp 0x40b003
push 2
mov ecx, dword [ebp + 0x18]
push ecx
lea edx, [ebp - 0x328]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov al, byte [ebp - 0x328]
mov byte [ebp - 0x326], al
mov cl, byte [ebp - 0x327]
mov byte [ebp - 0x328], cl
mov dl, byte [ebp - 0x326]
mov byte [ebp - 0x327], dl
push 2
lea eax, [ebp - 0x328]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov edx, dword [ebp + 0x1c]
push edx
lea eax, [ebp - 0x328]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov cl, byte [ebp - 0x328]
mov byte [ebp - 0x326], cl
mov dl, byte [ebp - 0x327]
mov byte [ebp - 0x328], dl
mov al, byte [ebp - 0x326]
mov byte [ebp - 0x327], al
push 2
lea ecx, [ebp - 0x328]
push ecx
mov edx, dword [ebp + 0x1c]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov eax, dword [ebp + 0x20]
push eax
lea ecx, [ebp - 0x328]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov dl, byte [ebp - 0x328]
mov byte [ebp - 0x326], dl
mov al, byte [ebp - 0x327]
mov byte [ebp - 0x328], al
mov cl, byte [ebp - 0x326]
mov byte [ebp - 0x327], cl
push 2
lea edx, [ebp - 0x328]
push edx
mov eax, dword [ebp + 0x20]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov ecx, dword [ebp + 0x24]
push ecx
lea edx, [ebp - 0x328]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov al, byte [ebp - 0x328]
mov byte [ebp - 0x326], al
mov cl, byte [ebp - 0x327]
mov byte [ebp - 0x328], cl
mov dl, byte [ebp - 0x326]
mov byte [ebp - 0x327], dl
push 2
lea eax, [ebp - 0x328]
push eax
mov ecx, dword [ebp + 0x24]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov edx, dword [ebp + 0x18]
push edx
lea eax, [ebp - 0x10]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov ecx, dword [ebp + 0x1c]
push ecx
lea edx, [ebp - 0xe]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov eax, dword [ebp + 0x20]
push eax
lea ecx, [ebp - 0xc]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov edx, dword [ebp + 0x24]
push edx
lea eax, [ebp - 0xa]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
lea ecx, [ebp - 0x10]
push ecx
mov dl, byte [ebp - 0x324]
push edx
mov al, byte [ebp - 0x320]
push eax
mov cl, byte [ebp - 0x31c]
push ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.00404990
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jge 0x408b7f
mov eax, dword [ebp - 4]
jmp 0x40b003
push 2
lea ecx, [ebp - 0x10]
push ecx
mov edx, dword [ebp + 0x18]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
lea eax, [ebp - 0xe]
push eax
mov ecx, dword [ebp + 0x1c]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
lea edx, [ebp - 0xc]
push edx
mov eax, dword [ebp + 0x20]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
lea ecx, [ebp - 0xa]
push ecx
mov edx, dword [ebp + 0x24]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov eax, dword [ebp + 0x18]
push eax
lea ecx, [ebp - 0x328]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov dl, byte [ebp - 0x328]
mov byte [ebp - 0x326], dl
mov al, byte [ebp - 0x327]
mov byte [ebp - 0x328], al
mov cl, byte [ebp - 0x326]
mov byte [ebp - 0x327], cl
push 2
lea edx, [ebp - 0x328]
push edx
mov eax, dword [ebp + 0x18]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov ecx, dword [ebp + 0x1c]
push ecx
lea edx, [ebp - 0x328]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov al, byte [ebp - 0x328]
mov byte [ebp - 0x326], al
mov cl, byte [ebp - 0x327]
mov byte [ebp - 0x328], cl
mov dl, byte [ebp - 0x326]
mov byte [ebp - 0x327], dl
push 2
lea eax, [ebp - 0x328]
push eax
mov ecx, dword [ebp + 0x1c]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov edx, dword [ebp + 0x20]
push edx
lea eax, [ebp - 0x328]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov cl, byte [ebp - 0x328]
mov byte [ebp - 0x326], cl
mov dl, byte [ebp - 0x327]
mov byte [ebp - 0x328], dl
mov al, byte [ebp - 0x326]
mov byte [ebp - 0x327], al
push 2
lea ecx, [ebp - 0x328]
push ecx
mov edx, dword [ebp + 0x20]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov eax, dword [ebp + 0x24]
push eax
lea ecx, [ebp - 0x328]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov dl, byte [ebp - 0x328]
mov byte [ebp - 0x326], dl
mov al, byte [ebp - 0x327]
mov byte [ebp - 0x328], al
mov cl, byte [ebp - 0x326]
mov byte [ebp - 0x327], cl
push 2
lea edx, [ebp - 0x328]
push edx
mov eax, dword [ebp + 0x24]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
xor eax, eax
jmp 0x40b003
mov byte [ebp - 0x32c], 2
mov byte [ebp - 0x330], 0
mov ecx, dword [ebp + 0x10]
mov dl, byte [ecx]
mov byte [ebp - 0x334], dl
mov eax, dword [ebp + 0x10]
cmp dword [eax], 0x7f
jbe 0x408d31
mov eax, 7
jmp 0x40b003
mov ecx, dword [ebp - 0x330]
and ecx, 0xff
cmp ecx, 0xff
jle 0x408d4f
mov eax, 7
jmp 0x40b003
push 2
mov edx, dword [ebp + 0x18]
push edx
lea eax, [ebp - 0x344]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov cl, byte [ebp - 0x344]
mov byte [ebp - 0x342], cl
mov dl, byte [ebp - 0x343]
mov byte [ebp - 0x344], dl
mov al, byte [ebp - 0x342]
mov byte [ebp - 0x343], al
push 2
lea ecx, [ebp - 0x344]
push ecx
mov edx, dword [ebp + 0x18]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov eax, dword [ebp + 0x1c]
push eax
lea ecx, [ebp - 0x344]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov dl, byte [ebp - 0x344]
mov byte [ebp - 0x342], dl
mov al, byte [ebp - 0x343]
mov byte [ebp - 0x344], al
mov cl, byte [ebp - 0x342]
mov byte [ebp - 0x343], cl
push 2
lea edx, [ebp - 0x344]
push edx
mov eax, dword [ebp + 0x1c]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov ecx, dword [ebp + 0x20]
push ecx
lea edx, [ebp - 0x344]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov al, byte [ebp - 0x344]
mov byte [ebp - 0x342], al
mov cl, byte [ebp - 0x343]
mov byte [ebp - 0x344], cl
mov dl, byte [ebp - 0x342]
mov byte [ebp - 0x343], dl
push 2
lea eax, [ebp - 0x344]
push eax
mov ecx, dword [ebp + 0x20]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov edx, dword [ebp + 0x24]
push edx
lea eax, [ebp - 0x344]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov cl, byte [ebp - 0x344]
mov byte [ebp - 0x342], cl
mov dl, byte [ebp - 0x343]
mov byte [ebp - 0x344], dl
mov al, byte [ebp - 0x342]
mov byte [ebp - 0x343], al
push 2
lea ecx, [ebp - 0x344]
push ecx
mov edx, dword [ebp + 0x24]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov eax, dword [ebp + 0x18]
push eax
lea ecx, [ebp - 0x10]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov edx, dword [ebp + 0x1c]
push edx
lea eax, [ebp - 0xe]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov ecx, dword [ebp + 0x20]
push ecx
lea edx, [ebp - 0xc]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov eax, dword [ebp + 0x24]
push eax
lea ecx, [ebp - 0xa]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov edx, dword [ebp - 0x32c]
and edx, 0xff
cmp edx, 2
jne 0x408f18
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax]
mov dword [ebp - 0x338], ecx
lea edx, [ebp - 0x340]
push edx
mov eax, dword [ebp - 0x338]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.004034b0
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jge 0x408f18
mov eax, dword [ebp - 4]
jmp 0x40b003
lea eax, [ebp - 0x10]
push eax
mov cl, byte [ebp - 0x334]
push ecx
mov dl, byte [ebp - 0x330]
push edx
mov al, byte [ebp - 0x32c]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00404990
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jge 0x408f50
mov eax, dword [ebp - 4]
jmp 0x40b003
push 2
lea eax, [ebp - 0x10]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
lea edx, [ebp - 0xe]
push edx
mov eax, dword [ebp + 0x1c]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
lea ecx, [ebp - 0xc]
push ecx
mov edx, dword [ebp + 0x20]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
lea eax, [ebp - 0xa]
push eax
mov ecx, dword [ebp + 0x24]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov edx, dword [ebp + 0x18]
push edx
lea eax, [ebp - 0x344]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov cl, byte [ebp - 0x344]
mov byte [ebp - 0x342], cl
mov dl, byte [ebp - 0x343]
mov byte [ebp - 0x344], dl
mov al, byte [ebp - 0x342]
mov byte [ebp - 0x343], al
push 2
lea ecx, [ebp - 0x344]
push ecx
mov edx, dword [ebp + 0x18]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov eax, dword [ebp + 0x1c]
push eax
lea ecx, [ebp - 0x344]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov dl, byte [ebp - 0x344]
mov byte [ebp - 0x342], dl
mov al, byte [ebp - 0x343]
mov byte [ebp - 0x344], al
mov cl, byte [ebp - 0x342]
mov byte [ebp - 0x343], cl
push 2
lea edx, [ebp - 0x344]
push edx
mov eax, dword [ebp + 0x1c]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov ecx, dword [ebp + 0x20]
push ecx
lea edx, [ebp - 0x344]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov al, byte [ebp - 0x344]
mov byte [ebp - 0x342], al
mov cl, byte [ebp - 0x343]
mov byte [ebp - 0x344], cl
mov dl, byte [ebp - 0x342]
mov byte [ebp - 0x343], dl
push 2
lea eax, [ebp - 0x344]
push eax
mov ecx, dword [ebp + 0x20]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov edx, dword [ebp + 0x24]
push edx
lea eax, [ebp - 0x344]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov cl, byte [ebp - 0x344]
mov byte [ebp - 0x342], cl
mov dl, byte [ebp - 0x343]
mov byte [ebp - 0x344], dl
mov al, byte [ebp - 0x342]
mov byte [ebp - 0x343], al
push 2
lea ecx, [ebp - 0x344]
push ecx
mov edx, dword [ebp + 0x24]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
xor eax, eax
jmp 0x40b003
mov byte [ebp - 0x348], 3
mov eax, dword [ebp + 0x14]
mov cl, byte [eax]
mov byte [ebp - 0x34c], cl
mov edx, dword [ebp + 0x10]
mov al, byte [edx]
mov byte [ebp - 0x350], al
mov ecx, dword [ebp + 0x10]
cmp dword [ecx], 0x7f
jbe 0x409106
mov eax, 7
jmp 0x40b003
mov edx, dword [ebp - 0x34c]
and edx, 0xff
cmp edx, 0xff
jle 0x409124
mov eax, 7
jmp 0x40b003
push 2
mov eax, dword [ebp + 0x18]
push eax
lea ecx, [ebp - 0x354]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov dl, byte [ebp - 0x354]
mov byte [ebp - 0x352], dl
mov al, byte [ebp - 0x353]
mov byte [ebp - 0x354], al
mov cl, byte [ebp - 0x352]
mov byte [ebp - 0x353], cl
push 2
lea edx, [ebp - 0x354]
push edx
mov eax, dword [ebp + 0x18]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov ecx, dword [ebp + 0x1c]
push ecx
lea edx, [ebp - 0x354]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov al, byte [ebp - 0x354]
mov byte [ebp - 0x352], al
mov cl, byte [ebp - 0x353]
mov byte [ebp - 0x354], cl
mov dl, byte [ebp - 0x352]
mov byte [ebp - 0x353], dl
push 2
lea eax, [ebp - 0x354]
push eax
mov ecx, dword [ebp + 0x1c]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov edx, dword [ebp + 0x20]
push edx
lea eax, [ebp - 0x354]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov cl, byte [ebp - 0x354]
mov byte [ebp - 0x352], cl
mov dl, byte [ebp - 0x353]
mov byte [ebp - 0x354], dl
mov al, byte [ebp - 0x352]
mov byte [ebp - 0x353], al
push 2
lea ecx, [ebp - 0x354]
push ecx
mov edx, dword [ebp + 0x20]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov eax, dword [ebp + 0x24]
push eax
lea ecx, [ebp - 0x354]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov dl, byte [ebp - 0x354]
mov byte [ebp - 0x352], dl
mov al, byte [ebp - 0x353]
mov byte [ebp - 0x354], al
mov cl, byte [ebp - 0x352]
mov byte [ebp - 0x353], cl
push 2
lea edx, [ebp - 0x354]
push edx
mov eax, dword [ebp + 0x24]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov ecx, dword [ebp + 0x18]
push ecx
lea edx, [ebp - 0x10]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov eax, dword [ebp + 0x1c]
push eax
lea ecx, [ebp - 0xe]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov edx, dword [ebp + 0x20]
push edx
lea eax, [ebp - 0xc]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov ecx, dword [ebp + 0x24]
push ecx
lea edx, [ebp - 0xa]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
lea eax, [ebp - 0x10]
push eax
mov cl, byte [ebp - 0x350]
push ecx
mov dl, byte [ebp - 0x34c]
push edx
mov al, byte [ebp - 0x348]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00404990
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jge 0x4092dc
mov eax, dword [ebp - 4]
jmp 0x40b003
push 2
lea eax, [ebp - 0x10]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
lea edx, [ebp - 0xe]
push edx
mov eax, dword [ebp + 0x1c]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
lea ecx, [ebp - 0xc]
push ecx
mov edx, dword [ebp + 0x20]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
lea eax, [ebp - 0xa]
push eax
mov ecx, dword [ebp + 0x24]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov edx, dword [ebp + 0x18]
push edx
lea eax, [ebp - 0x354]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov cl, byte [ebp - 0x354]
mov byte [ebp - 0x352], cl
mov dl, byte [ebp - 0x353]
mov byte [ebp - 0x354], dl
mov al, byte [ebp - 0x352]
mov byte [ebp - 0x353], al
push 2
lea ecx, [ebp - 0x354]
push ecx
mov edx, dword [ebp + 0x18]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov eax, dword [ebp + 0x1c]
push eax
lea ecx, [ebp - 0x354]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov dl, byte [ebp - 0x354]
mov byte [ebp - 0x352], dl
mov al, byte [ebp - 0x353]
mov byte [ebp - 0x354], al
mov cl, byte [ebp - 0x352]
mov byte [ebp - 0x353], cl
push 2
lea edx, [ebp - 0x354]
push edx
mov eax, dword [ebp + 0x1c]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov ecx, dword [ebp + 0x20]
push ecx
lea edx, [ebp - 0x354]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov al, byte [ebp - 0x354]
mov byte [ebp - 0x352], al
mov cl, byte [ebp - 0x353]
mov byte [ebp - 0x354], cl
mov dl, byte [ebp - 0x352]
mov byte [ebp - 0x353], dl
push 2
lea eax, [ebp - 0x354]
push eax
mov ecx, dword [ebp + 0x20]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 2
mov edx, dword [ebp + 0x24]
push edx
lea eax, [ebp - 0x354]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov cl, byte [ebp - 0x354]
mov byte [ebp - 0x352], cl
mov dl, byte [ebp - 0x353]
mov byte [ebp - 0x354], dl
mov al, byte [ebp - 0x352]
mov byte [ebp - 0x353], al
push 2
lea ecx, [ebp - 0x354]
push ecx
mov edx, dword [ebp + 0x24]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
xor eax, eax
jmp 0x40b003
mov eax, dword [ebp + 0x18]
xor ecx, ecx
mov cx, word [eax]
mov dword [ebp - 0x358], ecx
mov edx, dword [ebp - 0x358]
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.00404f60
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jge 0x409499
mov eax, 0x13
jmp 0x40b003
xor eax, eax
jmp 0x40b003
mov edx, dword [ebp + 0x10]
cmp dword [edx], 1
jb 0x4094b0
mov eax, dword [ebp + 0x10]
cmp dword [eax], 3
jbe 0x4094ba
mov eax, 0x1c
jmp 0x40b003
mov dword [ebp - 0x35c], 0
jmp 0x4094d5
mov ecx, dword [ebp - 0x35c]
add ecx, 1
mov dword [ebp - 0x35c], ecx
cmp dword [ebp - 0x35c], 0x10
jge 0x4094ef
call sub.MSVCRT.dll_rand
mov edx, dword [ebp - 0x35c]
mov byte [ebp + edx - 0x20], al
jmp 0x4094c6
lea eax, [ebp - 0x20]
push eax
mov ecx, dword [ebp + 0x10]
mov dl, byte [ecx]
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.00405d60
mov dword [ebp - 4], eax
push 0x10
push 0
lea edx, [ebp - 0x20]
push edx
call sub.MSVCRT.dll_memset
add esp, 0xc
cmp dword [ebp - 4], 0
je 0x409528
mov eax, dword [ebp - 4]
jmp 0x40b003
xor eax, eax
jmp 0x40b003
lea eax, [ebp - 0x3b4]
push eax
call fcn.00417460
add esp, 4
push 4
mov ecx, dword [ebp + 0x10]
push ecx
lea edx, [ebp - 0x3b4]
push edx
call fcn.004174c0
add esp, 0xc
lea eax, [ebp - 0x3b4]
push eax
lea ecx, [ebp - 0x3c4]
push ecx
call fcn.00417610
add esp, 8
cmp dword [0x421c98], 1
jae 0x40957c
mov eax, 0xf
jmp 0x40b003
mov dword [ebp - 0x3c8], 0
jmp 0x409597
mov edx, dword [ebp - 0x3c8]
add edx, 1
mov dword [ebp - 0x3c8], edx
cmp dword [ebp - 0x3c8], 0x10
jge 0x4095cd
mov eax, dword [ebp - 0x3c8]
xor ecx, ecx
mov cl, byte [ebp + eax - 0x3c4]
push ecx
push str._02x
mov edx, dword [ebp - 0x3c8]
lea eax, [ebp + edx*2 - 0x3ec]
push eax
call sub.MSVCRT.dll_sprintf
add esp, 0xc
jmp 0x409588
push 0x10
push 0
lea ecx, [ebp - 0x20]
push ecx
call sub.MSVCRT.dll_memset
add esp, 0xc
mov dword [ebp - 0x3c8], 0
jmp 0x4095f8
mov edx, dword [ebp - 0x3c8]
add edx, 1
mov dword [ebp - 0x3c8], edx
cmp dword [ebp - 0x3c8], 0x10
jge 0x409624
mov eax, dword [ebp - 0x3c8]
mov ecx, dword [ebp - 0x3c8]
mov dl, byte [ebp + eax - 0x20]
xor dl, byte [ebp + ecx - 0x3c4]
mov eax, dword [ebp - 0x3c8]
mov byte [ebp + eax - 0x20], dl
jmp 0x4095e9
push 0x10
lea ecx, [ebp - 0x20]
push ecx
lea edx, [ebp - 0x3c4]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov eax, dword [ebp + 0x14]
push eax
lea ecx, [ebp - 0x20]
push ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.00405b60
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x409662
mov eax, 0x1d
jmp 0x40b003
push 4
lea ecx, [ebp - 0x3c4]
push ecx
mov edx, dword [ebp + 0x18]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 4
lea eax, [ebp - 0x3c0]
push eax
mov ecx, dword [ebp + 0x1c]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 4
lea edx, [ebp - 0x3bc]
push edx
mov eax, dword [ebp + 0x20]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 4
lea ecx, [ebp - 0x3b8]
push ecx
mov edx, dword [ebp + 0x24]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
xor eax, eax
jmp 0x40b003
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
add ecx, 7
shr ecx, 3
mov dword [ebp - 0x3f0], ecx
mov edx, dword [ebp + 0x14]
mov al, byte [edx]
mov byte [ebp - 0x3f4], al
mov byte [ebp - 0x3f8], 1
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx]
xor edx, edx
mov ecx, 8
div ecx
test edx, edx
je 0x4096fc
mov eax, 7
jmp 0x40b003
mov edx, dword [ebp - 0x3f4]
and edx, 0xff
cmp edx, 1
jl 0x40971d
mov eax, dword [ebp - 0x3f4]
and eax, 0xff
cmp eax, 3
jle 0x409727
mov eax, 0x1c
jmp 0x40b003
mov dword [ebp - 0x3fc], 0
mov ecx, dword [ebp - 0x3fc]
cmp ecx, dword [ebp - 0x3f0]
jge 0x409814
mov dword [ebp - 0x400], 0
jmp 0x40975e
mov edx, dword [ebp - 0x400]
add edx, 1
mov dword [ebp - 0x400], edx
cmp dword [ebp - 0x400], 8
jge 0x409788
mov eax, dword [ebp - 0x3fc]
mov ecx, dword [ebp - 0x400]
lea edx, [ecx + eax*8]
mov eax, dword [ebp - 0x400]
mov ecx, dword [ebp + 0x28]
mov dl, byte [ecx + edx]
mov byte [ebp + eax - 0x10], dl
jmp 0x40974f
lea eax, [ebp - 0x10]
push eax
mov cl, byte [ebp - 0x3f4]
push ecx
mov dl, byte [ebp - 0x3f8]
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.00403140
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x4097bb
mov eax, 0x20
jmp 0x40b003
mov dword [ebp - 0x404], 0
jmp 0x4097d6
mov edx, dword [ebp - 0x404]
add edx, 1
mov dword [ebp - 0x404], edx
cmp dword [ebp - 0x404], 8
jge 0x409800
mov eax, dword [ebp - 0x3fc]
mov ecx, dword [ebp - 0x404]
lea edx, [ecx + eax*8]
mov eax, dword [ebp + 0x28]
mov ecx, dword [ebp - 0x404]
mov cl, byte [ebp + ecx - 0x10]
mov byte [eax + edx], cl
jmp 0x4097c7
mov edx, dword [ebp - 0x3fc]
add edx, 1
mov dword [ebp - 0x3fc], edx
jmp 0x409731
xor eax, eax
jmp 0x40b003
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
add ecx, 7
shr ecx, 3
mov dword [ebp - 0x408], ecx
mov edx, dword [ebp + 0x14]
mov al, byte [edx]
mov byte [ebp - 0x40c], al
mov byte [ebp - 0x410], 2
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx]
xor edx, edx
mov ecx, 8
div ecx
test edx, edx
je 0x40985a
mov eax, 7
jmp 0x40b003
mov edx, dword [ebp - 0x40c]
and edx, 0xff
cmp edx, 1
jl 0x40987b
mov eax, dword [ebp - 0x40c]
and eax, 0xff
cmp eax, 3
jle 0x409885
mov eax, 0x1c
jmp 0x40b003
mov dword [ebp - 0x414], 0
mov ecx, dword [ebp - 0x414]
cmp ecx, dword [ebp - 0x408]
jge 0x409972
mov dword [ebp - 0x418], 0
jmp 0x4098bc
mov edx, dword [ebp - 0x418]
add edx, 1
mov dword [ebp - 0x418], edx
cmp dword [ebp - 0x418], 8
jge 0x4098e6
mov eax, dword [ebp - 0x414]
mov ecx, dword [ebp - 0x418]
lea edx, [ecx + eax*8]
mov eax, dword [ebp - 0x418]
mov ecx, dword [ebp + 0x28]
mov dl, byte [ecx + edx]
mov byte [ebp + eax - 0x10], dl
jmp 0x4098ad
lea eax, [ebp - 0x10]
push eax
mov cl, byte [ebp - 0x40c]
push ecx
mov dl, byte [ebp - 0x410]
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.00403140
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x409919
mov eax, 0x20
jmp 0x40b003
mov dword [ebp - 0x41c], 0
jmp 0x409934
mov edx, dword [ebp - 0x41c]
add edx, 1
mov dword [ebp - 0x41c], edx
cmp dword [ebp - 0x41c], 8
jge 0x40995e
mov eax, dword [ebp - 0x414]
mov ecx, dword [ebp - 0x41c]
lea edx, [ecx + eax*8]
mov eax, dword [ebp + 0x28]
mov ecx, dword [ebp - 0x41c]
mov cl, byte [ebp + ecx - 0x10]
mov byte [eax + edx], cl
jmp 0x409925
mov edx, dword [ebp - 0x414]
add edx, 1
mov dword [ebp - 0x414], edx
jmp 0x40988f
xor eax, eax
jmp 0x40b003
lea eax, [ebp - 0x474]
push eax
call fcn.00417460
add esp, 4
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp + 0x28]
push eax
lea ecx, [ebp - 0x474]
push ecx
call fcn.004174c0
add esp, 0xc
lea edx, [ebp - 0x474]
push edx
lea eax, [ebp - 0x484]
push eax
call fcn.00417610
add esp, 8
mov ecx, dword [ebp + 0x14]
cmp dword [ecx], 0
jne 0x409a18
mov dword [ebp - 0x488], 0
jmp 0x4099da
mov edx, dword [ebp - 0x488]
add edx, 1
mov dword [ebp - 0x488], edx
cmp dword [ebp - 0x488], 0x10
jge 0x409a0f
mov eax, dword [ebp - 0x488]
xor ecx, ecx
mov cl, byte [ebp + eax - 0x484]
push ecx
push str._02x
mov edx, dword [ebp - 0x488]
mov eax, dword [ebp + 0x28]
lea ecx, [eax + edx*2]
push ecx
call sub.MSVCRT.dll_sprintf
add esp, 0xc
jmp 0x4099cb
mov edx, dword [ebp + 0x28]
mov byte [edx + 0x20], 0
jmp 0x409a34
push 0x10
lea eax, [ebp - 0x484]
push eax
mov ecx, dword [ebp + 0x28]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov edx, dword [ebp + 0x28]
mov byte [edx + 0x10], 0
xor eax, eax
jmp 0x40b003
mov byte [ebp - 0x48c], 0x10
mov dword [ebp - 0x490], 0x1e0
lea eax, [ebp - 0x20]
push eax
mov ecx, dword [ebp - 0x490]
push ecx
mov dl, byte [ebp - 0x48c]
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.004045a0
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x409a7f
mov eax, 0x1e
jmp 0x40b003
push 4
lea edx, [ebp - 0x20]
push edx
mov eax, dword [ebp + 0x10]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
xor eax, eax
jmp 0x40b003
mov byte [ebp - 0x494], 0x10
mov dword [ebp - 0x498], 0x1e0
lea ecx, [ebp - 0x20]
push ecx
mov edx, dword [ebp - 0x498]
push edx
mov al, byte [ebp - 0x494]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.004045a0
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x409adc
mov eax, 0x1f
jmp 0x40b003
push 4
mov eax, dword [ebp + 0x10]
push eax
lea ecx, [ebp - 0x20]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
lea edx, [ebp - 0x20]
push edx
mov eax, dword [ebp - 0x498]
push eax
mov cl, byte [ebp - 0x494]
push ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.00404390
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x409b21
mov eax, 0x1f
jmp 0x40b003
xor eax, eax
jmp 0x40b003
mov byte [ebp - 0x49c], 0x10
mov dword [ebp - 0x4a0], 0x1e0
lea ecx, [ebp - 0x20]
push ecx
mov edx, dword [ebp - 0x4a0]
push edx
mov al, byte [ebp - 0x49c]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.004045a0
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x409b6c
mov eax, 0xa
jmp 0x40b003
push 4
lea eax, [ebp - 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
xor eax, eax
jmp 0x40b003
mov byte [ebp - 0x4a4], 0x10
mov dword [ebp - 0x4a8], 0x1e0
lea edx, [ebp - 0x20]
push edx
mov eax, dword [ebp - 0x4a8]
push eax
mov cl, byte [ebp - 0x4a4]
push ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.004045a0
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x409bc9
mov eax, 0xa
jmp 0x40b003
push 4
lea ecx, [ebp - 0x18]
push ecx
mov edx, dword [ebp + 0x10]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
xor eax, eax
jmp 0x40b003
mov byte [ebp - 0x4ac], 0x10
mov dword [ebp - 0x4b0], 0x1e0
lea eax, [ebp - 0x20]
push eax
mov ecx, dword [ebp - 0x4b0]
push ecx
mov dl, byte [ebp - 0x4ac]
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.004045a0
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x409c26
mov eax, 0xa
jmp 0x40b003
push 4
lea edx, [ebp - 0x1c]
push edx
mov eax, dword [ebp + 0x10]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
xor eax, eax
jmp 0x40b003
push 4
mov ecx, dword [ebp + 0x18]
push ecx
lea edx, [ebp - 0x20]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 4
mov eax, dword [ebp + 0x1c]
push eax
lea ecx, [ebp - 0x1c]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 4
mov edx, dword [ebp + 0x20]
push edx
lea eax, [ebp - 0x18]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 4
mov ecx, dword [ebp + 0x24]
push ecx
lea edx, [ebp - 0x14]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 4
mov eax, dword [ebp + 0x10]
push eax
lea ecx, [ebp - 0x24]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
lea edx, [ebp - 0x24]
push edx
lea eax, [ebp - 0x20]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00405940
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x409cc2
mov eax, 0x1d
jmp 0x40b003
xor eax, eax
jmp 0x40b003
mov eax, dword [ebp + 0x10]
cmp dword [eax], 1
jb 0x409cd9
mov ecx, dword [ebp + 0x10]
cmp dword [ecx], 3
jbe 0x409ce3
mov eax, 0x1c
jmp 0x40b003
lea edx, [ebp - 0x20]
push edx
mov eax, dword [ebp + 0x10]
mov cl, byte [eax]
push ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.00405f30
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x409d0c
mov eax, dword [ebp - 4]
jmp 0x40b003
push 0x10
lea ecx, [ebp - 0x20]
push ecx
mov edx, dword [ebp + 0x28]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
xor eax, eax
jmp 0x40b003
mov byte [ebp - 0x4b4], 0x10
mov dword [ebp - 0x4b8], 0x1e0
lea eax, [ebp - 0x20]
push eax
mov ecx, dword [ebp - 0x4b8]
push ecx
mov dl, byte [ebp - 0x4b4]
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.004045a0
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x409d69
mov eax, 0xa
jmp 0x40b003
push 4
mov edx, dword [ebp + 0x10]
push edx
lea eax, [ebp - 0x1c]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
lea ecx, [ebp - 0x20]
push ecx
mov edx, dword [ebp - 0x4b8]
push edx
mov al, byte [ebp - 0x4b4]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00404390
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x409dae
mov eax, 0xb
jmp 0x40b003
xor eax, eax
jmp 0x40b003
mov byte [ebp - 0x4bc], 0x10
mov dword [ebp - 0x4c0], 0x1e0
lea eax, [ebp - 0x20]
push eax
mov ecx, dword [ebp - 0x4c0]
push ecx
mov dl, byte [ebp - 0x4bc]
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.004045a0
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x409df9
mov eax, 0xa
jmp 0x40b003
push 4
mov edx, dword [ebp + 0x10]
push edx
lea eax, [ebp - 0x18]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
lea ecx, [ebp - 0x20]
push ecx
mov edx, dword [ebp - 0x4c0]
push edx
mov al, byte [ebp - 0x4bc]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00404390
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x409e3e
mov eax, 0xb
jmp 0x40b003
xor eax, eax
jmp 0x40b003
mov byte [ebp - 0x4c4], 0x10
mov dword [ebp - 0x4c8], 0x1e0
lea eax, [ebp - 0x20]
push eax
mov ecx, dword [ebp - 0x4c8]
push ecx
mov dl, byte [ebp - 0x4c4]
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.004045a0
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x409e89
mov eax, 0xa
jmp 0x40b003
push 4
mov edx, dword [ebp + 0x10]
push edx
lea eax, [ebp - 0x14]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
lea ecx, [ebp - 0x20]
push ecx
mov edx, dword [ebp - 0x4c8]
push edx
mov al, byte [ebp - 0x4c4]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00404390
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x409ece
mov eax, 0xb
jmp 0x40b003
xor eax, eax
jmp 0x40b003
mov eax, dword [ebp + 0x20]
push eax
mov ecx, dword [ebp + 0x18]
mov dl, byte [ecx]
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.004052b0
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jge 0x409f00
mov eax, 0x13
jmp 0x40b003
xor eax, eax
jmp 0x40b003
mov edx, dword [ebp + 0x10]
mov al, byte [edx]
mov byte [ebp - 0x4cc], al
mov ecx, dword [ebp - 0x4cc]
and ecx, 0xff
cmp ecx, 0x20
jl 0x409f2d
mov eax, 0xa0100004
jmp 0x40b003
push 0x10
push 0
lea edx, [ebp - 0x4dc]
push edx
call sub.MSVCRT.dll_memset
add esp, 0xc
lea eax, [ebp - 0x4dc]
push eax
mov ecx, dword [ebp - 0x4cc]
and ecx, 0xff
shl ecx, 4
push ecx
push 0xf
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.00404390
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x409f7a
mov eax, 0x24
jmp 0x40b003
xor eax, eax
jmp 0x40b003
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
imul edx, edx, 0x140
movsx eax, byte [edx + 0x421de1]
cmp eax, 0x57
jne 0x40a062
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.0040ddb0
add esp, 4
test eax, eax
jne 0x40a041
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
imul ecx, ecx, 0x140
mov edx, dword [ebp + 0x28]
mov al, byte [ecx + 0x421de2]
mov byte [edx], al
call fcn.00401ad0
mov esi, esp
push 0xbb8
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp esi, esp
call sub.MSVCRT.dll__chkesp
mov dword [ebp - 8], 0
jmp 0x409ffc
mov ecx, dword [ebp - 8]
add ecx, 1
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], 0x14
jge 0x40a037
lea edx, [ebp - 0x500]
push edx
call fcn.0040d940
add esp, 4
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x40a021
xor eax, eax
jmp 0x40b003
mov esi, esp
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp esi, esp
call sub.MSVCRT.dll__chkesp
jmp 0x409ff3
mov eax, 5
jmp 0x40b003
call fcn.00401ad0
lea eax, [ebp - 0x500]
push eax
call fcn.0040d500
add esp, 4
mov dword [ebp - 4], eax
mov eax, 5
jmp 0x40b003
mov ecx, dword [ebp + 0x28]
push ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.004036e0
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x40a085
mov eax, dword [ebp - 4]
jmp 0x40b003
lea ecx, [ebp - 0x4e0]
push ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.00404db0
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x40a0ab
mov eax, dword [ebp - 4]
jmp 0x40b003
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
imul edx, edx, 0x140
mov eax, dword [ebp - 0x4e0]
mov dword [edx + 0x421dd4], eax
mov ecx, dword [ebp + 0x28]
push ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.0040df30
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 1
je 0x40a0ed
mov eax, 0x11
jmp 0x40b003
xor eax, eax
jmp 0x40b003
push 0
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x28]
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.00403fb0
jmp 0x40b003
push 1
push 0
mov edx, dword [ebp + 0x28]
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.00403fb0
jmp 0x40b003
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
imul eax, eax, 0x140
movsx ecx, byte [eax + 0x421de1]
cmp ecx, 0x57
jne 0x40a176
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.0040de70
add esp, 4
test eax, eax
jne 0x40a167
call fcn.00401ad0
xor eax, eax
jmp 0x40b003
call fcn.00401ad0
mov eax, 5
jmp 0x40b003
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00403d00
jmp 0x40b003
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.00403a60
jmp 0x40b003
mov edx, dword [ebp + 0x28]
push edx
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.0040f930
add esp, 0xc
cmp eax, 1
jne 0x40a1c3
xor eax, eax
jmp 0x40b003
mov eax, 8
jmp 0x40b003
mov ecx, dword [str.Drive]
mov dword [ebp - 0x534], ecx
mov dx, word [0x41eccc]
mov word [ebp - 0x530], dx
xor eax, eax
mov dword [ebp - 0x52e], eax
mov dword [ebp - 0x52a], eax
mov dword [ebp - 0x526], eax
mov word [ebp - 0x522], ax
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
push edx
lea eax, [ebp - 0x534]
push eax
lea ecx, [ebp - 0x534]
push ecx
push 1
push 0
push 0x400
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
imul eax, eax, 0x140
mov ecx, dword [eax + 0x421dcc]
push ecx
call fcn.004170e0
add esp, 0x1c
cmp eax, 1
jne 0x40a256
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.00403e60
xor eax, eax
jmp 0x40b003
mov eax, 8
jmp 0x40b003
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.0040fd20
add esp, 4
cmp eax, 1
jne 0x40a27d
xor eax, eax
jmp 0x40b003
mov eax, 8
jmp 0x40b003
mov eax, dword [ebp + 0x24]
mov cx, word [eax]
push ecx
mov edx, dword [ebp + 0x20]
mov ax, word [edx]
push eax
mov ecx, dword [ebp + 0x1c]
mov dx, word [ecx]
push edx
mov eax, dword [ebp + 0x18]
mov cx, word [eax]
push ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.0040ec20
add esp, 0x14
cmp eax, 1
jne 0x40a2ce
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00403e60
xor eax, eax
jmp 0x40b003
mov eax, 8
jmp 0x40b003
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.00403e60
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.0040f3c0
add esp, 4
cmp eax, 1
jne 0x40a303
xor eax, eax
jmp 0x40b003
mov eax, 8
jmp 0x40b003
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00403e60
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.00403bb0
jmp 0x40b003
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x28]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.0040f840
add esp, 0xc
cmp eax, 1
jne 0x40a353
xor eax, eax
jmp 0x40b003
mov eax, 8
jmp 0x40b003
mov eax, dword [ebp + 0x28]
push eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.0040ea90
add esp, 0x10
jmp 0x40b003
mov ecx, dword [ebp + 0x28]
push ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.0040eaf0
add esp, 0x10
jmp 0x40b003
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.00403360
test eax, eax
je 0x40a3c5
mov eax, 0xf6
jmp 0x40b003
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
mov ecx, edx
imul ecx, ecx, 0x140
add ecx, 0x421ddc
call fcn.0040ca50
mov eax, dword [ebp + 0x28]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.004137f0
add esp, 8
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.00403e60
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
mov ecx, eax
imul ecx, ecx, 0x140
add ecx, 0x421ddc
call fcn.0040caa0
mov eax, dword [ebp - 4]
jmp 0x40b003
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00403360
test eax, eax
je 0x40a445
mov eax, 0xf6
jmp 0x40b003
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
imul ecx, ecx, 0x140
add ecx, 0x421ddc
call fcn.0040ca50
mov edx, dword [ebp + 0x28]
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.00413950
add esp, 8
mov dword [ebp - 4], eax
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.00403e60
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
mov ecx, edx
imul ecx, ecx, 0x140
add ecx, 0x421ddc
call fcn.0040caa0
mov eax, dword [ebp - 4]
jmp 0x40b003
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.00403360
test eax, eax
je 0x40a4c3
mov eax, 0xf6
jmp 0x40b003
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
mov ecx, eax
imul ecx, ecx, 0x140
add ecx, 0x421ddc
call fcn.0040ca50
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00413af0
add esp, 4
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.00403e60
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
mov ecx, eax
imul ecx, ecx, 0x140
add ecx, 0x421ddc
call fcn.0040caa0
mov eax, dword [ebp - 4]
jmp 0x40b003
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
mov ecx, edx
imul ecx, ecx, 0x140
add ecx, 0x421ddc
call fcn.0040ca50
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.00414e90
add esp, 8
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00403e60
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
imul ecx, ecx, 0x140
add ecx, 0x421ddc
call fcn.0040caa0
mov eax, dword [ebp - 4]
jmp 0x40b003
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.00403360
test eax, eax
je 0x40a5a3
mov eax, 0xf6
jmp 0x40b003
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
mov ecx, edx
imul ecx, ecx, 0x140
add ecx, 0x421ddc
call fcn.0040ca50
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00416350
add esp, 8
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
mov ecx, eax
imul ecx, ecx, 0x140
add ecx, 0x421ddc
call fcn.0040caa0
xor eax, eax
jmp 0x40b003
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00403360
test eax, eax
je 0x40a616
mov eax, 0xf6
jmp 0x40b003
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
imul ecx, ecx, 0x140
add ecx, 0x421ddc
call fcn.0040ca50
mov edx, dword [ebp + 0x28]
push edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00411f30
add esp, 0x10
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.00403e60
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
mov ecx, eax
imul ecx, ecx, 0x140
add ecx, 0x421ddc
call fcn.0040caa0
mov eax, dword [ebp - 4]
jmp 0x40b003
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00403360
test eax, eax
je 0x40a6a0
mov eax, 0xf6
jmp 0x40b003
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
imul ecx, ecx, 0x140
add ecx, 0x421ddc
call fcn.0040ca50
mov edx, dword [ebp + 0x28]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.004130d0
add esp, 0xc
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.00403e60
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
mov ecx, eax
imul ecx, ecx, 0x140
add ecx, 0x421ddc
call fcn.0040caa0
mov eax, dword [ebp - 4]
jmp 0x40b003
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00403360
test eax, eax
je 0x40a722
mov eax, 0xf6
jmp 0x40b003
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
imul ecx, ecx, 0x140
add ecx, 0x421ddc
call fcn.0040ca50
mov edx, dword [ebp + 0x28]
push edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00411c80
add esp, 0x10
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
imul ecx, ecx, 0x140
add ecx, 0x421ddc
call fcn.0040caa0
mov eax, dword [ebp - 4]
jmp 0x40b003
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.00403360
test eax, eax
je 0x40a79c
mov eax, 0xf6
jmp 0x40b003
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
mov ecx, edx
imul ecx, ecx, 0x140
add ecx, 0x421ddc
call fcn.0040ca50
mov eax, dword [ebp + 0x28]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00411070
add esp, 8
and eax, 0xff
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
imul ecx, ecx, 0x140
add ecx, 0x421ddc
call fcn.0040caa0
mov eax, dword [ebp - 4]
jmp 0x40b003
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.00403360
test eax, eax
je 0x40a811
mov eax, 0xf6
jmp 0x40b003
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
mov ecx, edx
imul ecx, ecx, 0x140
add ecx, 0x421ddc
call fcn.0040ca50
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.00411470
add esp, 4
and eax, 0xff
mov dword [ebp - 4], eax
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
mov ecx, eax
imul ecx, ecx, 0x140
add ecx, 0x421ddc
call fcn.0040caa0
mov eax, dword [ebp - 4]
jmp 0x40b003
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00403360
test eax, eax
je 0x40a884
mov eax, 0xf6
jmp 0x40b003
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
imul ecx, ecx, 0x140
add ecx, 0x421ddc
call fcn.0040ca50
mov edx, dword [ebp + 0x28]
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.00416480
add esp, 8
mov edx, dword [ebp + 0x10]
mov dword [edx], eax
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
imul ecx, ecx, 0x140
add ecx, 0x421ddc
call fcn.0040caa0
xor eax, eax
jmp 0x40b003
push 4
mov edx, dword [ebp + 0x18]
push edx
lea eax, [ebp - 0x20]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 4
mov ecx, dword [ebp + 0x1c]
push ecx
lea edx, [ebp - 0x1c]
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 4
mov eax, dword [ebp + 0x20]
push eax
lea ecx, [ebp - 0x18]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
push 4
mov edx, dword [ebp + 0x24]
push edx
lea eax, [ebp - 0x14]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
lea ecx, [ebp - 0x20]
push ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.004057c0
test eax, eax
je 0x40a93f
mov eax, 5
jmp 0x40b003
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
mov ecx, edx
imul ecx, ecx, 0x140
add ecx, 0x421ddc
call fcn.0040ca50
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.00410700
add esp, 4
mov dword [ebp - 0x538], eax
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
mov ecx, eax
imul ecx, ecx, 0x140
add ecx, 0x421ddc
call fcn.0040caa0
mov eax, dword [ebp - 0x538]
jmp 0x40b003
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00403360
test eax, eax
je 0x40a9b3
mov eax, 0xf6
jmp 0x40b003
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
imul ecx, ecx, 0x140
add ecx, 0x421ddc
call fcn.0040ca50
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.00416440
add esp, 4
mov ecx, dword [ebp + 0x10]
mov dword [ecx], eax
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
mov ecx, eax
imul ecx, ecx, 0x140
add ecx, 0x421ddc
call fcn.0040caa0
xor eax, eax
jmp 0x40b003
mov ecx, dword [ebp + 0x1c]
push ecx
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.0040b7a0
jmp 0x40b003
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.0040b410
jmp 0x40b003
mov dword [ebp - 0x53c], 0
mov ecx, dword [ebp + 0x10]
cmp dword [ecx], 4
jne 0x40aa75
mov edx, dword [ebp + 0x1c]
xor eax, eax
mov ax, word [edx]
cmp eax, 3
jg 0x40aa69
mov ecx, dword [ebp + 0x1c]
xor edx, edx
mov dx, word [ecx]
test edx, edx
jge 0x40aa73
mov eax, 0x2c
jmp 0x40b003
jmp 0x40aa98
mov eax, dword [ebp + 0x1c]
xor ecx, ecx
mov cx, word [eax]
cmp ecx, 0xe
jg 0x40aa8e
mov edx, dword [ebp + 0x1c]
xor eax, eax
mov ax, word [edx]
test eax, eax
jge 0x40aa98
mov eax, 0x2c
jmp 0x40b003
mov ecx, dword [ebp + 0x14]
cmp dword [ecx], 0x200
jbe 0x40aaad
mov eax, 0x6e
jmp 0x40b003
mov word [ebp - 0x540], 0
mov word [ebp - 0x540], 0
jmp 0x40aad3
mov dx, word [ebp - 0x540]
add dx, 1
mov word [ebp - 0x540], dx
mov eax, dword [ebp - 0x540]
and eax, 0xffff
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx]
shr edx, 4
cmp eax, edx
jae 0x40ab2c
mov eax, dword [ebp - 0x540]
and eax, 0xffff
shl eax, 4
mov ecx, dword [ebp + 0x28]
add ecx, eax
push ecx
mov edx, dword [ebp - 0x540]
and edx, 0xffff
shl edx, 4
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.0040bf30
test eax, eax
je 0x40ab2a
mov eax, 0x20
jmp 0x40b003
jmp 0x40aac1
mov edx, dword [ebp + 0x14]
mov eax, dword [edx]
xor edx, edx
mov ecx, 0x10
div ecx
test edx, edx
je 0x40ab7f
mov edx, dword [ebp - 0x540]
and edx, 0xffff
shl edx, 4
mov eax, dword [ebp + 0x28]
add eax, edx
push eax
mov ecx, dword [ebp - 0x540]
and ecx, 0xffff
shl ecx, 4
push ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.0040bf30
test eax, eax
je 0x40ab7f
mov eax, 0x20
jmp 0x40b003
mov ecx, dword [ebp + 0x1c]
mov dx, word [ecx]
push edx
mov eax, dword [ebp + 0x18]
mov cx, word [eax]
push ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.0040b9d0
mov dword [ebp - 0x53c], eax
cmp dword [ebp - 0x53c], 0
je 0x40abd3
cmp dword [ebp - 0x53c], 0x2c
jne 0x40abc9
mov eax, 0x2c
jmp 0x40b003
mov eax, 0x20
jmp 0x40b003
mov word [ebp - 0x544], 0
mov word [ebp - 0x544], 0
jmp 0x40abf9
mov dx, word [ebp - 0x544]
add dx, 1
mov word [ebp - 0x544], dx
mov eax, dword [ebp - 0x544]
and eax, 0xffff
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx]
shr edx, 4
cmp eax, edx
jae 0x40ac52
mov eax, dword [ebp - 0x544]
and eax, 0xffff
shl eax, 4
mov ecx, dword [ebp + 0x28]
add ecx, eax
push ecx
mov edx, dword [ebp - 0x544]
and edx, 0xffff
shl edx, 4
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.0040c2b0
test eax, eax
je 0x40ac50
mov eax, 0x20
jmp 0x40b003
jmp 0x40abe7
mov edx, dword [ebp + 0x14]
mov eax, dword [edx]
xor edx, edx
mov ecx, 0x10
div ecx
test edx, edx
je 0x40aca5
mov edx, dword [ebp - 0x544]
and edx, 0xffff
shl edx, 4
mov eax, dword [ebp + 0x28]
add eax, edx
push eax
mov ecx, dword [ebp - 0x544]
and ecx, 0xffff
shl ecx, 4
push ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.0040c2b0
test eax, eax
je 0x40aca5
mov eax, 0x20
jmp 0x40b003
xor eax, eax
jmp 0x40b003
mov dword [ebp - 0x548], 0
mov ecx, dword [ebp + 0x10]
cmp dword [ecx], 4
jne 0x40ace3
mov edx, dword [ebp + 0x1c]
xor eax, eax
mov ax, word [edx]
cmp eax, 3
jg 0x40acd7
mov ecx, dword [ebp + 0x1c]
xor edx, edx
mov dx, word [ecx]
test edx, edx
jge 0x40ace1
mov eax, 0x2c
jmp 0x40b003
jmp 0x40ad06
mov eax, dword [ebp + 0x1c]
xor ecx, ecx
mov cx, word [eax]
cmp ecx, 0xe
jg 0x40acfc
mov edx, dword [ebp + 0x1c]
xor eax, eax
mov ax, word [edx]
test eax, eax
jge 0x40ad06
mov eax, 0x2c
jmp 0x40b003
mov ecx, dword [ebp + 0x14]
cmp dword [ecx], 0x200
jbe 0x40ad1b
mov eax, 8
jmp 0x40b003
mov word [ebp - 0x54c], 0
mov word [ebp - 0x54c], 0
jmp 0x40ad41
mov dx, word [ebp - 0x54c]
add dx, 1
mov word [ebp - 0x54c], dx
mov eax, dword [ebp - 0x54c]
and eax, 0xffff
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx]
shr edx, 4
cmp eax, edx
jae 0x40ad9a
mov eax, dword [ebp - 0x54c]
and eax, 0xffff
shl eax, 4
mov ecx, dword [ebp + 0x28]
add ecx, eax
push ecx
mov edx, dword [ebp - 0x54c]
and edx, 0xffff
shl edx, 4
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.0040bd70
test eax, eax
je 0x40ad98
mov eax, 0x21
jmp 0x40b003
jmp 0x40ad2f
mov edx, dword [ebp + 0x14]
mov eax, dword [edx]
xor edx, edx
mov ecx, 0x10
div ecx
test edx, edx
je 0x40aded
mov edx, dword [ebp - 0x54c]
and edx, 0xffff
shl edx, 4
mov eax, dword [ebp + 0x28]
add eax, edx
push eax
mov ecx, dword [ebp - 0x54c]
and ecx, 0xffff
shl ecx, 4
push ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.0040bd70
test eax, eax
je 0x40aded
mov eax, 0x21
jmp 0x40b003
mov ecx, dword [ebp + 0x1c]
mov dx, word [ecx]
push edx
mov eax, dword [ebp + 0x18]
mov cx, word [eax]
push ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.0040bba0
mov dword [ebp - 0x548], eax
cmp dword [ebp - 0x548], 0
je 0x40ae41
cmp dword [ebp - 0x548], 0x2c
jne 0x40ae37
mov eax, 0x2c
jmp 0x40b003
mov eax, 0x21
jmp 0x40b003
mov word [ebp - 0x550], 0
mov word [ebp - 0x550], 0
jmp 0x40ae67
mov dx, word [ebp - 0x550]
add dx, 1
mov word [ebp - 0x550], dx
mov eax, dword [ebp - 0x550]
and eax, 0xffff
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx]
shr edx, 4
cmp eax, edx
jae 0x40aec0
mov eax, dword [ebp - 0x550]
and eax, 0xffff
shl eax, 4
mov ecx, dword [ebp + 0x28]
add ecx, eax
push ecx
mov edx, dword [ebp - 0x550]
and edx, 0xffff
shl edx, 4
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.0040c0f0
test eax, eax
je 0x40aebe
mov eax, 0x21
jmp 0x40b003
jmp 0x40ae55
mov edx, dword [ebp + 0x14]
mov eax, dword [edx]
xor edx, edx
mov ecx, 0x10
div ecx
test edx, edx
je 0x40af13
mov edx, dword [ebp - 0x550]
and edx, 0xffff
shl edx, 4
mov eax, dword [ebp + 0x28]
add eax, edx
push eax
mov ecx, dword [ebp - 0x550]
and ecx, 0xffff
shl ecx, 4
push ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.0040c0f0
test eax, eax
je 0x40af13
mov eax, 0x21
jmp 0x40b003
xor eax, eax
jmp 0x40b003
mov dword [ebp - 0x554], 0
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.0040b270
jmp 0x40b003
call fcn.004100c0
test eax, eax
je 0x40af52
mov eax, 8
jmp 0x40b003
xor eax, eax
jmp 0x40b003
mov edx, dword [ebp + 0x28]
push edx
call fcn.0040fdf0
add esp, 4
test eax, eax
je 0x40af73
mov eax, 8
jmp 0x40b003
xor eax, eax
jmp 0x40b003
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cx, word [eax]
imul ecx, ecx, 0x140
mov edx, dword [ebp + 0x28]
mov al, byte [ecx + 0x421de4]
mov byte [edx], al
xor eax, eax
jmp 0x40b003
mov ecx, dword [ebp + 0x28]
push ecx
mov edx, dword [ebp + 0xc]
xor eax, eax
mov ax, word [edx]
push eax
call fcn.004038a0
jmp 0x40b003
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.00403d00
jmp 0x40b003
push 1
push 0
mov eax, dword [ebp + 0x28]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.004041a0
jmp 0x40b003
call fcn.004101f0
jmp 0x40b003
mov eax, dword [ebp + 0x28]
push eax
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov dx, word [ecx]
push edx
call fcn.0040e2b0
add esp, 8
test eax, eax
jne 0x40affa
mov eax, 8
jmp 0x40b003
xor eax, eax
jmp 0x40b003
mov eax, 8
pop edi
pop esi
pop ebx
add esp, 0x598
cmp ebp, esp
call sub.MSVCRT.dll__chkesp
mov esp, ebp
pop ebp
ret 0x24