Function at 0x415bd0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1268
call fcn.00428770
movsx eax, byte [0x4319d1]
push ebx
push esi
push edi
push eax
push 0xcc73ffff
call fcn.00410970
movsx ecx, byte [0x4319cb]
push 0x5f7dffff
push ecx
mov dword [0x4319f4], eax
call fcn.004109b0
mov dl, byte [0x4319c8]
mov dword [0x4319ec], eax
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov esi, dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
mov byte [ebp - 1], dl
mov edx, dword [0x4319c0]
mov ecx, dword [eax]
mov ebx, 1
sub ecx, edx
add esp, 0x10
cmp ecx, ebx
ja 0x415c3a
call esi
mov edx, dword [0x4319c0]
mov ecx, 0x4319b8
lea edi, [edx + 1]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::max_size_void_const]
cmp eax, edi
jae 0x415c54
call esi
mov eax, dword [0x4319bc]
test eax, eax
je 0x415c80
mov cl, byte [eax - 1]
test cl, cl
je 0x415c80
cmp cl, 0xff
je 0x415c80
test edi, edi
jne 0x415c9e
dec cl
push edi
mov byte [eax - 1], cl
mov ecx, 0x4319b8
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
jmp 0x415ccf
test edi, edi
jne 0x415c96
test eax, eax
je 0x415ccf
push edi
mov ecx, 0x4319b8
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Eos_unsigned_int_]
jmp 0x415ccf
cmp dword [0x4319c4], edi
jae 0x415caf
push edi
mov ecx, 0x4319b8
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Copy_unsigned_int_]
mov eax, dword [0x4319bc]
movsx ecx, byte [ebp - 1]
mov edx, dword [0x4319c0]
mov ch, cl
add edx, eax
mov byte [edx], cl
mov ecx, dword [0x4319bc]
mov dword [0x4319c0], edi
mov byte [ecx + edi], 0
mov esi, dword [ebp + 8]
mov ecx, 6
xor eax, eax
mov edi, esi
rep stosd dword es:[edi], eax
movsx eax, byte [0x4319ce]
mov edx, dword [0x4319f4]
push edx
push eax
call fcn.00410860
mov ecx, dword [0x4319f0]
add esp, 8
add ecx, eax
mov al, byte [0x431fcc]
test al, al
mov dword [0x4319f0], ecx
je 0x415dc7
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov cl, byte [0x4319cc]
mov byte [ebp - 1], cl
cmp dword [edx], ebx
jne 0x415d28
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
mov ecx, 0x4319b8
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::max_size_void_const]
cmp eax, ebx
jae 0x415d3d
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
mov eax, dword [0x4319bc]
test eax, eax
je 0x415d51
mov al, byte [eax - 1]
test al, al
je 0x415d51
cmp al, 0xff
jne 0x415d6b
mov eax, dword [0x4319c4]
cmp eax, 0x1f
ja 0x415d5f
cmp eax, ebx
jae 0x415d77
push ebx
mov ecx, 0x4319b8
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push ebx
mov ecx, 0x4319b8
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Copy_unsigned_int_]
movsx eax, byte [ebp - 1]
mov edx, dword [0x4319bc]
mov edi, dword [ebp + 8]
mov ah, al
mov ecx, 6
mov byte [edx], al
mov eax, dword [0x4319bc]
mov dword [0x4319c0], ebx
mov esi, 0x431fb4
mov byte [eax + 1], 0
rep movsd dword es:[edi], dword [esi]
movsx cx, byte [0x4319d1]
mov edx, dword [0x4319fc]
sub edx, ecx
mov word [0x4319d8], dx
lea esp, [ebp - 0x1274]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [0x4319f8]
mov cl, byte [0x4319d1]
dec word [0x4319d4]
mov edi, dword [0x431a08]
sub edx, 0x6bae0001
xor eax, eax
test cl, cl
setne al
add edi, eax
push 0x176dffff
movsx eax, word [0x4319d8]
push eax
mov dword [0x4319f8], edx
mov dword [0x431a08], edi
call fcn.00410970
add word [0x4319d8], ax
mov al, byte [0x4315e4]
sub al, 0x4d
add esp, 8
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.00428770
mov ecx, esp
lea edx, [ebp - 0xa68]
push 0x800
lea eax, [ebp - 0x1b0]
push edx
push eax
lea edx, [ebp - 0x1b8]
lea eax, [ebp - 0x34]
push edx
push eax
lea edx, [ebp - 0x1268]
push 0x800
push edx
mov edx, 0x4315e4
call fcn.00426650
push eax
call dword [sym.imp.KERNEL32.DLL_GetVolumeInformationA]
test eax, eax
je 0x415e9a
push 0x35adffff
push 0xefafffff
mov word [0x4319de], bx
call fcn.004109b0
mov cl, byte [0x4319c8]
add esp, 8
add cl, al
mov eax, dword [ebp - 0x34]
mov byte [0x4319c8], cl
mov dword [esi], eax
mov ecx, dword [0x4319fc]
mov edx, dword [0x4319e8]
or ecx, 0xc727ffff
add edx, ecx
mov dword [0x4319e8], edx
movsx edx, word [0x4319da]
push edx
push 0xf593ffff
call fcn.004108e0
mov ecx, dword [0x4319ec]
push 0x4e6dffff
add ecx, eax
movsx eax, word [0x4319e2]
push eax
mov dword [0x4319ec], ecx
call fcn.00410a30
add byte [0x4319ce], al
call fcn.00417600
mov dword [esi + 0xc], eax
push 0x767ffff
movsx ecx, byte [0x4319ce]
push ecx
call fcn.00410920
movsx edx, byte [0x4319cc]
add word [0x4319d2], ax
push 0x26fffff
push edx
call fcn.00410920
mov edi, dword [0x431a0c]
add edi, eax
movsx eax, word [0x4319d8]
push eax
push 0x60a9ffff
mov dword [0x431a0c], edi
call fcn.00410860
movsx ecx, word [0x4319e2]
push 0xfac1ffff
push ecx
mov word [0x4319de], ax
mov byte [0x4319ce], 0
call fcn.00410860
add word [0x4319dc], ax
mov al, byte [0x4315d4]
sub al, 0x4d
add esp, 0x30
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.00428770
mov ecx, esp
mov edx, 0x4315d4
call fcn.00426650
push eax
call dword [sym.imp.KERNEL32.DLL_LoadLibraryA]
movsx edx, word [0x4319e2]
mov esi, eax
push 0x2fabffff
push edx
mov dword [ebp - 0x1c], esi
call fcn.00410920
mov cl, byte [0x4319c8]
add esp, 8
add cl, al
movsx ax, byte [0x4319ce]
inc eax
mov byte [0x4319c8], cl
add word [0x4319e4], ax
cmp esi, 0x20
jb 0x4170a5
mov edx, dword [0x431a0c]
xor eax, eax
cmp word [0x4319e0], ax
setne al
add edx, eax
mov al, byte [0x4315c0]
sub al, 0x4d
mov dword [0x431a0c], edx
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.00428770
mov ecx, esp
mov edx, 0x4315c0
call fcn.00426650
push eax
push esi
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov dword [ebp - 0x14], eax
mov eax, dword [0x43192c]
mov edx, dword [ecx]
test eax, eax
mov dword [ebp - 8], edx
je 0x41609f
mov cl, byte [eax - 1]
test cl, cl
je 0x41609f
cmp cl, 0xff
je 0x41609f
mov edi, eax
push ebx
mov ecx, 0x431928
mov dword [ebp - 0xc], edi
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ebx
mov dword [ebp - 0x10], ecx
push ecx
mov ecx, 0x431928
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x41609a
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov edi, dword [0x43192c]
mov ecx, eax
mov edx, ecx
push eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x431928
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Eos_unsigned_int_]
mov eax, dword [0x43192c]
mov esi, dword [ebp - 0x1c]
jmp 0x41609f
mov eax, dword [0x43192c]
mov ecx, dword [0x431930]
mov edx, dword [ebp - 8]
cmp ecx, edx
jae 0x4160b1
mov edx, ecx
mov dword [ebp - 8], edx
test edx, edx
jbe 0x416143
mov edx, dword [ebp - 8]
sub ecx, edx
add edx, eax
push ecx
push edx
push eax
call dword [sym.imp.MSVCRT.dll_memmove]
mov edi, dword [0x431930]
mov edx, dword [ebp - 8]
add esp, 0xc
mov ecx, 0x431928
sub edi, edx
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::max_size_void_const]
cmp eax, edi
jae 0x4160ec
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
mov eax, dword [0x43192c]
test eax, eax
je 0x416118
mov cl, byte [eax - 1]
test cl, cl
je 0x416118
cmp cl, 0xff
je 0x416118
test edi, edi
jne 0x41612b
dec cl
push edi
mov byte [eax - 1], cl
mov ecx, 0x431928
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
jmp 0x416143
test edi, edi
jne 0x416123
test eax, eax
je 0x416143
push edi
jmp 0x416138
cmp dword [0x431934], edi
jae 0x416137
push edi
mov ecx, 0x431928
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Copy_unsigned_int_]
push edi
mov ecx, 0x431928
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Eos_unsigned_int_]
push 0x12b3ffff
push 0xa3b5ffff
call fcn.00410860
mov ecx, dword [0x431a04]
add esp, 8
add ecx, eax
mov al, byte [0x4315a8]
sub al, 0x4d
mov dword [0x431a04], ecx
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.00428770
mov ecx, esp
mov edx, 0x4315a8
call fcn.00426650
mov edi, dword [sym.imp.KERNEL32.DLL_GetProcAddress]
push eax
push esi
call edi
movsx eax, word [0x4319de]
movsx ecx, byte [0x4319ce]
imul eax, eax, 0x2143ffff
push ecx
push 0x5383ffff
mov dword [0x4319f8], eax
call fcn.00410860
mov edx, dword [0x431a0c]
add esp, 8
add edx, eax
mov al, byte [0x431594]
sub al, 0x4d
mov dword [0x431a0c], edx
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.00428770
mov ecx, esp
mov edx, 0x431594
call fcn.00426650
push eax
push esi
call edi
push 0x38f1ffff
push 0x1e5bffff
mov dword [ebp - 0x20], eax
call fcn.004109f0
push 0x22c5ffff
push 0xa01bffff
mov byte [0x4319cf], al
call fcn.004108e0
movsx edx, byte [0x4319cb]
mov dword [0x4319e8], eax
mov eax, dword [0x4319f4]
add esp, 0x10
lea ecx, [eax + edx - 0x37480001]
mov al, byte [0x431580]
sub al, 0x4d
mov dword [0x4319f4], ecx
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.00428770
mov ecx, esp
mov edx, 0x431580
call fcn.00426650
push eax
push esi
call edi
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov dl, byte [0x4319c9]
mov byte [ebp - 1], dl
cmp dword [eax], ebx
jne 0x41626f
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
mov ecx, 0x431968
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::max_size_void_const]
cmp eax, ebx
jae 0x416284
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
mov eax, dword [0x43196c]
test eax, eax
je 0x416298
mov al, byte [eax - 1]
test al, al
je 0x416298
cmp al, 0xff
jne 0x4162b2
mov eax, dword [0x431974]
cmp eax, 0x1f
ja 0x4162a6
cmp eax, ebx
jae 0x4162be
push ebx
mov ecx, 0x431968
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push ebx
mov ecx, 0x431968
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Copy_unsigned_int_]
movsx ecx, byte [ebp - 1]
mov eax, dword [0x43196c]
mov ch, cl
push 0x584bffff
push 0xdda1ffff
mov byte [eax], cl
mov ecx, dword [0x43196c]
mov dword [0x431970], ebx
mov byte [ecx + 1], 0
mov dx, word [0x4319e2]
movsx ax, byte [0x4319c8]
dec dx
mov word [0x4319e0], ax
mov word [0x4319d8], dx
call fcn.00410820
mov ecx, dword [0x431a0c]
mov esi, dword [ebp - 0x14]
add esp, 8
add ecx, eax
test esi, esi
mov dword [0x431a0c], ecx
je 0x417030
lea ecx, [ebp - 0x1c0]
lea edx, [ebp - 0x1b4]
push ecx
push edx
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
push eax
call esi
test eax, eax
je 0x417030
movsx ecx, byte [0x4319cd]
lea eax, [ebp - 0x94]
mov edx, 6
mov dword [ebp - 0x50], eax
mov eax, ecx
shl eax, 4
add eax, ecx
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0x12c], edx
mov edi, 3
lea eax, [eax + eax*2]
mov esi, 2
shl eax, 1
sub eax, ecx
mov dword [ebp - 0x94], ebx
neg eax
movsx edx, byte [0x4319cf]
lea eax, [eax + eax*8]
push edx
shl eax, 0x12
sub eax, ecx
lea ecx, [ebp - 0x134]
mov dword [0x4319fc], eax
mov dword [ebp - 0x90], edi
movsx eax, byte [0x4319ca]
push eax
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x84], esi
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x7c], esi
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x54], 8
mov dword [ebp - 0x134], ebx
mov dword [ebp - 0x130], edi
mov dword [ebp - 0x128], ebx
mov dword [ebp - 0x124], esi
mov dword [ebp - 0x120], ebx
mov dword [ebp - 0x11c], esi
mov dword [ebp - 0x118], esi
mov dword [ebp - 0x114], ebx
mov dword [ebp - 0x110], edi
mov dword [ebp - 0x6c], 0xa
mov dword [ebp - 0x68], ecx
call fcn.00410820
mov cl, byte [0x4319dc]
mov dl, byte [0x4319cf]
mov byte [0x4319cb], al
mov eax, 6
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xc0], eax
movsx eax, byte [0x4319d1]
sub dl, cl
mov ecx, dword [0x4319ec]
mov byte [0x4319cf], dl
lea edx, [ebp - 0xe4]
push eax
push ecx
mov dword [ebp - 0xe4], ebx
mov dword [ebp - 0xe0], edi
mov dword [ebp - 0xd8], ebx
mov dword [ebp - 0xd4], esi
mov dword [ebp - 0xd0], ebx
mov dword [ebp - 0xcc], esi
mov dword [ebp - 0xc8], esi
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 0x3c], 0xa
mov dword [ebp - 0x38], edx
call fcn.00410a30
add word [0x4319d8], ax
push 0xfa85ffff
push 0xe96dffff
call fcn.00410920
mov edx, dword [0x4319f0]
push 0x9b33ffff
add edx, eax
mov dword [0x4319f0], edx
mov edx, dword [0x431a08]
push edx
call fcn.00410860
add esp, 0x20
add word [0x4319d4], ax
mov dl, byte [0x4319e8]
lea ecx, [ebp - 0x10c]
mov dword [ebp - 0x60], ecx
mov cl, byte [0x4319cf]
dec dl
mov eax, 6
add cl, dl
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x154], eax
mov byte [0x4319cf], cl
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
lea eax, [ebp - 0x15c]
mov dword [ebp - 0x58], eax
mov eax, dword [0x43196c]
mov dword [ebp - 0x10c], ebx
mov dword [ebp - 0x108], edi
mov dword [ebp - 0x100], ebx
mov dword [ebp - 0xfc], esi
mov dword [ebp - 0xf8], ebx
mov dword [ebp - 0xf4], 4
mov dword [ebp - 0xf0], 0x14
mov dword [ebp - 0xec], ebx
mov dword [ebp - 0xe8], ebx
mov dword [ebp - 0x64], 0xa
mov dword [0x431a00], ebx
mov dword [ebp - 0x15c], ebx
mov dword [ebp - 0x158], edi
mov dword [ebp - 0x150], ebx
mov dword [ebp - 0x14c], esi
mov dword [ebp - 0x148], ebx
mov dword [ebp - 0x144], 4
mov dword [ebp - 0x140], 0x14
mov dword [ebp - 0x13c], ebx
mov dword [ebp - 0x138], edi
mov dword [ebp - 0x5c], 0xa
mov edx, dword [ecx]
test eax, eax
mov dword [ebp - 8], edx
je 0x41661c
mov cl, byte [eax - 1]
test cl, cl
je 0x41661c
cmp cl, 0xff
je 0x41661c
mov edi, eax
push ebx
mov ecx, 0x431968
mov dword [ebp - 0x10], edi
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ebx
mov dword [ebp - 0x14], ecx
push ecx
mov ecx, 0x431968
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x416617
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x10]
mov edi, dword [0x43196c]
mov ecx, eax
mov edx, ecx
push eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x431968
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Eos_unsigned_int_]
mov eax, dword [0x43196c]
mov esi, 2
jmp 0x41661c
mov eax, dword [0x43196c]
mov ecx, dword [0x431970]
mov edx, dword [ebp - 8]
cmp ecx, edx
jae 0x41662e
mov edx, ecx
mov dword [ebp - 8], edx
test edx, edx
jbe 0x4166c0
mov edx, dword [ebp - 8]
sub ecx, edx
add edx, eax
push ecx
push edx
push eax
call dword [sym.imp.MSVCRT.dll_memmove]
mov edi, dword [0x431970]
mov edx, dword [ebp - 8]
add esp, 0xc
mov ecx, 0x431968
sub edi, edx
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::max_size_void_const]
cmp eax, edi
jae 0x416669
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
mov eax, dword [0x43196c]
test eax, eax
je 0x416695
mov cl, byte [eax - 1]
test cl, cl
je 0x416695
cmp cl, 0xff
je 0x416695
test edi, edi
jne 0x4166a8
dec cl
push edi
mov byte [eax - 1], cl
mov ecx, 0x431968
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
jmp 0x4166c0
test edi, edi
jne 0x4166a0
test eax, eax
je 0x4166c0
push edi
jmp 0x4166b5
cmp dword [0x431974], edi
jae 0x4166b4
push edi
mov ecx, 0x431968
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Copy_unsigned_int_]
push edi
mov ecx, 0x431968
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Eos_unsigned_int_]
movsx eax, byte [0x4319ca]
or eax, dword [0x4319f8]
movsx ecx, byte [0x4319ce]
push ecx
push 0xa91ffff
mov dword [0x4319f4], eax
call fcn.00410970
mov cx, word [0x4319e2]
mov edi, 3
add cx, ax
lea edx, [ebp - 0x1ac]
movsx eax, cx
push 0xf279ffff
push eax
mov word [0x4319e2], cx
mov dword [ebp - 0x1ac], ebx
mov dword [ebp - 0x1a8], edi
mov dword [ebp - 0x1a4], 6
mov dword [ebp - 0x1a0], ebx
mov dword [ebp - 0x19c], esi
mov dword [ebp - 0x198], ebx
mov dword [ebp - 0x194], esi
mov dword [ebp - 0x190], esi
mov dword [ebp - 0x18c], ebx
mov dword [ebp - 0x188], esi
mov dword [ebp - 0x74], 0xa
mov dword [ebp - 0x70], edx
call fcn.004109f0
mov ecx, dword [0x4319ec]
mov dword [ebp - 0xbc], ebx
movsx edx, byte [0x4319cb]
add ecx, eax
push edx
movsx eax, byte [0x4319ce]
mov dword [0x4319ec], ecx
lea ecx, [ebp - 0xbc]
push eax
mov dword [ebp - 0xb8], edi
mov dword [ebp - 0xb4], 6
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0xac], esi
mov dword [ebp - 0xa8], ebx
mov dword [ebp - 0xa4], 4
mov dword [ebp - 0xa0], 0x14
mov dword [ebp - 0x9c], ebx
mov dword [ebp - 0x98], esi
mov dword [ebp - 0x44], 0xa
mov dword [ebp - 0x40], ecx
call fcn.004107d0
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov cl, byte [0x4319cd]
mov dword [0x431a08], eax
add esp, 0x18
mov eax, dword [edx]
mov byte [ebp - 1], cl
cmp eax, ebx
jne 0x4167f6
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
mov ecx, 0x431938
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::max_size_void_const]
cmp eax, ebx
jae 0x41680b
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
mov eax, dword [0x43193c]
test eax, eax
je 0x41681f
mov al, byte [eax - 1]
test al, al
je 0x41681f
cmp al, 0xff
jne 0x416839
mov eax, dword [0x431944]
cmp eax, 0x1f
ja 0x41682d
cmp eax, ebx
jae 0x416845
push ebx
mov ecx, 0x431938
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push ebx
mov ecx, 0x431938
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Copy_unsigned_int_]
movsx eax, byte [ebp - 1]
mov edx, dword [0x43193c]
mov ah, al
lea ecx, [ebp - 0x184]
mov byte [edx], al
mov eax, dword [0x43193c]
mov dword [0x431940], ebx
mov byte [eax + 1], 0
mov eax, dword [0x4319f8]
movsx dx, byte [0x4319c9]
mov dword [ebp - 0x180], edi
mov edi, dword [0x431a0c]
and edx, edi
mov dword [ebp - 0x48], ecx
add word [0x4319dc], dx
mov cl, byte [0x4319cc]
dec eax
dec cl
mov word [0x4319d4], ax
mov al, byte [0x4319d1]
add al, cl
lea ecx, [ebp - 0x268]
mov byte [0x4319d1], al
lea eax, [ebp - 0x54]
lea edx, [ebp - 0x268]
push eax
push ecx
mov dword [ebp - 0x184], ebx
mov dword [ebp - 0x17c], 6
mov dword [ebp - 0x178], ebx
mov dword [ebp - 0x174], esi
mov dword [ebp - 0x170], ebx
mov dword [ebp - 0x16c], esi
mov dword [ebp - 0x168], esi
mov dword [ebp - 0x164], ebx
mov dword [ebp - 0x160], ebx
mov dword [ebp - 0x4c], 0xa
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], ebx
call dword [0x431f20]
mov cx, word [0x4319e0]
mov dword [0x4319f8], 0x9ef7ffff
mov al, cl
dec al
mov byte [0x4319d0], al
movsx edx, cx
movsx eax, al
push edx
push eax
call fcn.00410820
add word [0x4319d8], ax
add esp, 8
lea ecx, [ebp - 0x2c]
lea edx, [ebp - 0x30]
push ecx
lea eax, [ebp - 0x28]
push edx
push eax
push 0xa1
call dword [ebp - 0x20]
push 0x4d3bffff
push 0x6fabffff
call fcn.004107d0
sub word [0x4319e4], ax
mov edx, dword [ebp - 0x25c]
mov ecx, eax
mov dword [0x4319ec], eax
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
or ecx, 0x4b05ffff
mov dword [0x431a04], ecx
add esp, 8
mov esi, dword [eax]
mov eax, dword [0x43193c]
test eax, eax
mov dword [ebp - 0x18], edx
mov dword [ebp - 0xc], esi
je 0x416a05
mov cl, byte [eax - 1]
test cl, cl
je 0x416a05
cmp cl, 0xff
je 0x416a05
mov edi, eax
push ebx
mov ecx, 0x431938
mov dword [ebp - 0x10], edi
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ebx
mov dword [ebp - 0x14], ecx
push ecx
mov ecx, 0x431938
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x416a00
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x10]
mov edi, dword [0x43193c]
mov ecx, eax
mov edx, ecx
push eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x431938
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Eos_unsigned_int_]
mov eax, dword [0x43193c]
mov esi, dword [ebp - 0xc]
jmp 0x416a05
mov eax, dword [0x43193c]
mov ecx, dword [0x431940]
cmp ecx, esi
jae 0x416a11
mov esi, ecx
test esi, esi
jbe 0x416a50
sub ecx, esi
push ecx
lea ecx, [esi + eax]
push ecx
push eax
call dword [sym.imp.MSVCRT.dll_memmove]
mov edi, dword [0x431940]
add esp, 0xc
sub edi, esi
mov ecx, 0x431938
push 0
push edi
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x416a50
mov edx, dword [0x43193c]
mov dword [0x431940], edi
mov byte [edx + edi], 0
lea eax, [ebp - 0x6c]
lea ecx, [ebp - 0x268]
push eax
push ecx
call dword [0x431f20]
lea edx, [ebp - 0x3c]
lea eax, [ebp - 0x250]
push edx
push eax
call dword [0x431f20]
push 0x3ecfffff
push 0xa223ffff
call fcn.00410920
add esp, 8
lea ecx, [ebp - 0x64]
lea edx, [ebp - 0x238]
mov dword [0x431a00], eax
push ecx
push edx
mov dword [ebp - 0x24], 7
call dword [0x431f20]
movsx eax, byte [0x4319c9]
movsx ecx, byte [0x4319cf]
push eax
push ecx
call fcn.004107d0
mov edi, dword [0x4319f4]
add esp, 8
mov byte [0x4319d0], al
lea edx, [ebp - 0x5c]
lea eax, [ebp - 0x220]
inc edi
push edx
push eax
mov word [0x4319e2], 0xffff
mov dword [0x4319f4], edi
call dword [0x431f20]
lea ecx, [ebp - 0x74]
lea edx, [ebp - 0x208]
push ecx
push edx
call dword [0x431f20]
movsx ecx, word [0x4319e0]
mov eax, dword [0x4319fc]
push eax
push ecx
call fcn.00410820
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov ecx, dword [0x43193c]
mov dword [0x431a04], eax
add esp, 8
mov esi, dword [edx]
test ecx, ecx
mov dword [ebp - 0xc], esi
je 0x416b99
mov al, byte [ecx - 1]
test al, al
je 0x416b99
cmp al, 0xff
je 0x416b99
mov edi, ecx
push ebx
mov ecx, 0x431938
mov dword [ebp - 0x10], edi
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ebx
mov dword [ebp - 0x14], ecx
push ecx
mov ecx, 0x431938
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x416b93
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x10]
mov edi, dword [0x43193c]
mov ecx, eax
mov edx, ecx
push eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x431938
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Eos_unsigned_int_]
mov ecx, dword [0x43193c]
mov esi, dword [ebp - 0xc]
jmp 0x416b99
mov ecx, dword [0x43193c]
mov eax, dword [0x431940]
cmp eax, esi
jae 0x416ba4
mov esi, eax
test esi, esi
jbe 0x416be3
sub eax, esi
push eax
lea eax, [esi + ecx]
push eax
push ecx
call dword [sym.imp.MSVCRT.dll_memmove]
mov edi, dword [0x431940]
add esp, 0xc
sub edi, esi
mov ecx, 0x431938
push 0
push edi
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x416be3
mov ecx, dword [0x43193c]
mov dword [0x431940], edi
mov byte [ecx + edi], 0
lea edx, [ebp - 0x44]
lea eax, [ebp - 0x1f0]
push edx
push eax
call dword [0x431f20]
lea ecx, [ebp - 0x4c]
lea edx, [ebp - 0x1d8]
push ecx
push edx
call dword [0x431f20]
push 0xe85ffff
push 0x3abbffff
call fcn.004107d0
add word [0x4319d8], ax
mov al, byte [0x431a00]
mov cl, byte [0x4319c9]
dec al
movsx edx, word [0x4319e4]
add cl, al
xor esi, esi
mov byte [0x4319c9], cl
mov ecx, dword [0x4319f0]
push ecx
push edx
mov dword [ebp - 8], esi
call fcn.004107d0
mov eax, dword [ebp - 0x18]
add esp, 0x10
cmp eax, esi
mov dword [0x4319ec], 0x68200001
mov dword [ebp - 0xc], esi
jbe 0x417030
mov dword [ebp - 0x10], eax
mov al, byte [0x4319d1]
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov byte [ebp - 1], al
cmp dword [ecx], ebx
jne 0x416c7f
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
mov eax, dword [0x43193c]
test eax, eax
je 0x416c93
mov al, byte [eax - 1]
test al, al
je 0x416c93
cmp al, 0xff
jne 0x416cad
mov eax, dword [0x431944]
cmp eax, 0x1f
ja 0x416ca1
cmp eax, ebx
jae 0x416cb9
push ebx
mov ecx, 0x431938
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push ebx
mov ecx, 0x431938
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Copy_unsigned_int_]
movsx edx, byte [ebp - 1]
mov ecx, dword [0x43193c]
mov dh, dl
mov byte [ecx], dl
mov edx, dword [0x43193c]
mov dword [0x431940], ebx
mov byte [edx + 1], 0
mov eax, dword [0x431a00]
mov ecx, dword [0x431a0c]
push eax
push ecx
call fcn.00410860
mov ecx, dword [0x431a08]
add esp, 8
add ecx, eax
mov al, byte [0x4319cd]
dec al
lea edx, [ebp - 0x2c]
mov byte [0x4319cd], al
mov dword [0x431a08], ecx
lea eax, [ebp - 0x30]
push edx
lea ecx, [ebp - 0x28]
push eax
push ecx
push 0xa1
call dword [ebp - 0x20]
mov eax, dword [ebp - 0x240]
mov edi, 6
cmp eax, edi
jb 0x417023
push 0x33bbffff
push 0x954dffff
mov byte [0x4319d0], 0xff
call fcn.00410920
add word [0x4319e0], ax
movsx edx, byte [0x4319ca]
movsx eax, word [0x4319da]
push edx
push eax
call fcn.00410820
mov dword [0x4319ec], eax
mov eax, dword [ebp - 8]
add esp, 0x10
test eax, eax
jne 0x416e05
movsx ecx, byte [0x4319cb]
push 0x96edffff
push ecx
mov byte [0x4319ce], bl
call fcn.004107d0
add word [0x4319e2], ax
mov eax, dword [ebp - 0x244]
xor edx, edx
xor ecx, ecx
mov dl, byte [eax]
mov cl, byte [eax + 1]
mov esi, dword [ebp + 8]
shl edx, 8
add edx, ecx
xor ecx, ecx
mov cl, byte [eax + 2]
shl edx, 8
add edx, ecx
mov dword [esi + 4], edx
inc word [0x4319e0]
movsx edx, byte [0x4319d0]
push edx
push 0x18ddffff
call fcn.004109f0
mov word [0x4319da], ax
mov eax, dword [ebp - 0x244]
xor ecx, ecx
xor edx, edx
mov cl, byte [eax + 3]
mov dl, byte [eax + 4]
shl ecx, 8
add ecx, edx
xor edx, edx
mov dl, byte [eax + 5]
add esp, 0x10
shl ecx, 8
add ecx, edx
mov dword [ebp - 8], ebx
mov dword [esi + 8], ecx
mov word [0x4319de], 0xffff
cmp dword [ebp - 0x25c], edi
jne 0x417023
mov eax, dword [ebp - 0xc]
test eax, eax
jne 0x417023
movsx eax, word [0x4319e4]
movsx ecx, word [0x4319d8]
push eax
push ecx
call fcn.00410820
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov ecx, dword [0x43193c]
mov word [0x4319e0], ax
add esp, 8
mov esi, dword [edx]
test ecx, ecx
mov dword [ebp - 0xc], esi
je 0x416ec2
mov al, byte [ecx - 1]
test al, al
je 0x416ec2
cmp al, 0xff
je 0x416ec2
mov edi, ecx
push ebx
mov ecx, 0x431938
mov dword [ebp - 0x14], edi
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ebx
mov dword [ebp - 0x18], ecx
push ecx
mov ecx, 0x431938
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x416ebc
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
mov edi, dword [0x43193c]
mov ecx, eax
mov edx, ecx
push eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x431938
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Eos_unsigned_int_]
mov ecx, dword [0x43193c]
mov esi, dword [ebp - 0xc]
jmp 0x416ec2
mov ecx, dword [0x43193c]
mov eax, dword [0x431940]
cmp eax, esi
jae 0x416ecd
mov esi, eax
test esi, esi
jbe 0x416f69
sub eax, esi
push eax
lea eax, [esi + ecx]
push eax
push ecx
call dword [sym.imp.MSVCRT.dll_memmove]
mov edi, dword [0x431940]
add esp, 0xc
mov ecx, 0x431938
sub edi, esi
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::max_size_void_const]
cmp eax, edi
jae 0x416f03
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
mov ecx, dword [0x43193c]
test ecx, ecx
je 0x416f2f
mov al, byte [ecx - 1]
test al, al
je 0x416f2f
cmp al, 0xff
je 0x416f2f
test edi, edi
jne 0x416f4d
dec al
push edi
mov byte [ecx - 1], al
mov ecx, 0x431938
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
jmp 0x416f69
test edi, edi
jne 0x416f45
test ecx, ecx
je 0x416f69
push edi
mov ecx, 0x431938
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Eos_unsigned_int_]
jmp 0x416f69
cmp dword [0x431944], edi
jae 0x416f5f
push edi
mov ecx, 0x431938
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Copy_unsigned_int_]
mov ecx, dword [0x43193c]
mov dword [0x431940], edi
mov byte [ecx + edi], 0
mov al, byte [0x4319c8]
xor ecx, ecx
dec al
xor edx, edx
mov byte [0x4319c8], al
mov eax, dword [ebp - 0x244]
mov esi, dword [ebp + 8]
push 0x9cd7ffff
mov cl, byte [eax]
mov dl, byte [eax + 1]
shl ecx, 8
add ecx, edx
xor edx, edx
mov dl, byte [eax + 2]
shl ecx, 8
add ecx, edx
mov dword [esi + 0x10], ecx
mov ecx, dword [0x4319f0]
movsx eax, word [0x4319d6]
add eax, 0x4d060001
push ecx
mov word [0x4319d4], bx
mov dword [0x4319e8], eax
call fcn.00410920
mov dl, byte [0x4319cc]
xor ecx, ecx
add dl, al
mov eax, dword [ebp - 0x244]
mov byte [0x4319cc], dl
xor edx, edx
mov dl, byte [eax + 3]
mov cl, byte [eax + 4]
shl edx, 8
add edx, ecx
xor ecx, ecx
mov cl, byte [eax + 5]
shl edx, 8
add edx, ecx
mov dword [esi + 0x14], edx
mov edx, dword [0x4319e8]
sub edx, dword [0x431a00]
movsx eax, word [0x4319d8]
add word [0x4319e0], dx
push eax
push 0xbe41ffff
call fcn.00410970
add esp, 0x10
mov word [0x4319d4], ax
mov dword [ebp - 0xc], ebx
mov eax, dword [ebp - 0x10]
dec eax
mov dword [ebp - 0x10], eax
jne 0x416c67
mov cl, byte [0x4319d0]
inc cl
cmp word [0x4319de], 0
mov byte [0x4319d0], cl
je 0x417055
mov al, byte [0x4319cd]
test al, al
je 0x417055
mov eax, ebx
jmp 0x417057
xor eax, eax
mov ecx, dword [ebp - 0x1c]
add word [0x4319e0], ax
push ecx
call dword [sym.imp.KERNEL32.DLL_FreeLibrary]
mov al, byte [0x4319cd]
test al, al
jne 0x417084
mov eax, dword [0x4319f8]
mov dword [0x4319f8], 0
test eax, eax
je 0x41708a
mov dword [0x4319f8], ebx
mov edx, dword [0x4319f4]
push 0xb329ffff
push edx
call fcn.00410970
add esp, 8
add word [0x4319e0], ax
movsx eax, word [0x4319da]
movsx ecx, word [0x4319e0]
push eax
push ecx
mov byte [0x431fcc], bl
call fcn.00410820
mov dl, byte [0x4319cf]
mov esi, dword [ebp + 8]
add dl, al
mov ecx, 6
movsx eax, byte [0x4319ca]
mov edi, 0x431fb4
mov byte [0x4319cf], dl
rep movsd dword es:[edi], dword [esi]
movsx ecx, dl
push eax
push ecx
call fcn.004109f0
add word [0x4319dc], ax
add esp, 0x10
mov ecx, 0x431928
mov byte [0x4319ca], bl
push 0x431968
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::swap_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char____]
lea esp, [ebp - 0x1274]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret