Function at 0x40a9e0
Capabilities:
Check for time delay via gettickcount
Get common file path
Get startup folder
Write file on windows
Write file to startup folder

Disassembly:
push 0xffffffffffffffff
push 0x433e51
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2c0
mov al, byte [esp + 3]
push ebx
push ebp
push esi
mov ebp, ecx
push edi
push 0
lea ecx, [esp + 0x20]
mov dword [esp + 0x54], ebp
mov byte [esp + 0x20], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov edi, 0x43e158
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [esp + 0x20]
push ebx
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 0x40aa5f
mov edi, dword [esp + 0x20]
mov ecx, ebx
mov edx, ecx
mov esi, 0x43e158
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x20]
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, 0x7f
xor eax, eax
lea edi, [esp + 0xd1]
mov byte [esp + 0xd0], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x18
xor eax, eax
lea edi, [esp + 0x6d]
mov byte [esp + 0x6c], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 1
lea eax, [esp + 0xd4]
push 0
push eax
push 0
mov dword [esp + 0x2e8], 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
mov edi, 0x43d438
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0xd0]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 1
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
push 5
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push ecx
mov ecx, esp
mov dword [esp + 0x60], esp
push 6
push 0x43d430
call fcn.0041ccf6
lea eax, [esp + 0x68]
mov ecx, 0x43e1c8
push eax
call fcn.00424603
mov eax, dword [eax + 4]
test eax, eax
jne 0x40ab11
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0xd0]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 1
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x60]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov edi, 0x43d428
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0xd0]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov al, byte [ebp + 0x50]
mov ecx, ebx
and ecx, 3
cmp eax, 7
rep movsb byte es:[edi], byte [esi]
ja case.default.0x40ab88
jmp dword [eax*4 + 0x40b830]
lea edx, [esp + 0xd0]
mov edi, 0x43d418
jmp 0x40abfd
lea edx, [esp + 0xd0]
mov edi, 0x43d40c
jmp 0x40abfd
lea edx, [esp + 0xd0]
mov edi, 0x43d400
jmp 0x40abfd
lea edx, [esp + 0xd0]
mov edi, 0x43d3f4
jmp 0x40abfd
lea edx, [esp + 0xd0]
mov edi, 0x43d3ec
jmp 0x40abfd
lea edx, [esp + 0xd0]
mov edi, 0x43d3e0
jmp 0x40abfd
lea edx, [esp + 0xd0]
mov edi, 0x43d3d4
jmp 0x40abfd
lea edx, [esp + 0xd0]
mov edi, 0x43d3c8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ebx, [ebp + 4]
lea eax, [esp + 0xd0]
push eax
mov ecx, ebx
call fcn.00407410
lea ecx, [esp + 0xd0]
push ecx
push 0x43d3a8
push 0
mov ecx, 0x43e1c8
call fcn.0042b946
cmp al, 0x7f
je 0x40ad28
mov edi, 0x43e30b
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0xd0]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0
mov eax, ecx
mov esi, edi
mov edi, edx
push 3
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push ecx
mov ecx, esp
mov dword [esp + 0x60], esp
push 6
push 0x43d278
call fcn.0041ccf6
push ecx
mov byte [esp + 0x2e8], 1
mov ecx, esp
mov dword [esp + 0x5c], esp
push 6
push 0x43d270
call fcn.0041ccf6
mov ecx, 0x43e0c8
mov byte [esp + 0x2e8], 0
call fcn.00415825
mov ecx, ebx
call fcn.00402260
test al, al
push 0
push 0x707070
jne 0x40ace2
push 1
push 0x43e158
push 0x43a150
jmp 0x40ad1e
push 3
push 0x43e158
push 0x43a1c0
mov ecx, 0x43e0c8
call fcn.00415779
lea edi, [ebp + 0x54]
lea esi, [ebp + 0x50]
push edi
push esi
mov ecx, ebx
call fcn.00402aa0
test al, al
push 0
push 0x707070
jne 0x40ad44
push 1
push 0x43e158
push 0x43a13c
mov ecx, 0x43e0c8
call fcn.00415779
push 1
lea ecx, [esp + 0x20]
mov dword [esp + 0x2dc], 0xffffffff
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 0x40b811
push 3
push 0x43e158
push 0x43d390
mov ecx, 0x43e0c8
call fcn.00415779
push 0
lea ecx, [esp + 0x18]
call fcn.0041cb87
push 0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x2dc], 2
call fcn.0041cb87
xor eax, eax
mov byte [esp + 0x2d8], 3
mov al, byte [esi]
add eax, 0xfffffffd
cmp eax, 4
ja case.default.0x40ad8c
jmp dword [eax*4 + 0x40b850]
mov esi, 0x280000
jmp 0x40adad
mov esi, 0x180000
jmp 0x40adad
mov esi, 0x400000
jmp 0x40adad
mov esi, 0x200000
mov ecx, dword [ebp + 8]
push 0xa
push 2
push 0x50
push ecx
mov ecx, ebx
mov dword [esp + 0x5c], esi
call fcn.00402030
test al, al
jne 0x40addb
push 0
push 0x707070
push 1
push 0x43e158
push 0x43d384
jmp 0x40ae12
push 0xf4240
mov ecx, 0x43e508
call fcn.0041fefd
cmp al, 0x7f
je 0x40ae5e
mov edx, dword [ebp + 8]
push 0
push 2
push 0
push edx
mov ecx, ebx
call fcn.00402030
push 0
push 0x707070
push 1
push 0x43e158
push 0x43d370
mov ecx, 0x43e0c8
call fcn.00415779
lea ecx, [esp + 0x18]
mov byte [esp + 0x2d8], 2
call fcn.0041ceba
lea ecx, [esp + 0x14]
mov byte [esp + 0x2d8], 0
call fcn.0041ceba
push 1
lea ecx, [esp + 0x20]
mov dword [esp + 0x2dc], 0xffffffff
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov ax, 8
jmp 0x40b814
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push ecx
mov dword [esp + 0x58], eax
mov eax, esp
mov dword [esp + 0x5c], esp
push 1
push edi
push esi
push 0xa0000000
push eax
mov ecx, ebx
call fcn.00403cb0
lea ecx, [esp + 0x18]
call fcn.0041d132
lea ecx, [esp + 0x14]
call fcn.0041d635
cmp eax, esi
je 0x40af24
push 0x1c200
mov ecx, 0x43e508
call fcn.0041fefd
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [ebp + 8]
push 0
push 2
push 0
push ecx
mov ecx, ebx
call fcn.00402030
push 0
push 0x707070
push 1
push 0x43e158
push 0x43d358
mov ecx, 0x43e0c8
call fcn.00415779
lea ecx, [esp + 0x18]
mov byte [esp + 0x2d8], 2
call fcn.0041ceba
lea ecx, [esp + 0x14]
mov byte [esp + 0x2d8], 0
call fcn.0041ceba
push 1
lea ecx, [esp + 0x20]
mov dword [esp + 0x2dc], 0xffffffff
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov ax, 0xfffc
jmp 0x40b814
mov dl, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x30]
mov byte [esp + 0x30], dl
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
lea edi, [esp + 0xd0]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x30]
push ebp
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 0x40af83
mov edi, dword [esp + 0x30]
mov ecx, ebp
mov eax, ecx
lea esi, [esp + 0xd0]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x34], ebp
mov byte [ecx + ebp], 0
mov dl, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x40]
mov byte [esp + 0x2dc], 4
mov byte [esp + 0x40], dl
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
lea edi, [esp + 0xd0]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x40]
push ebp
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 0x40afea
mov edi, dword [esp + 0x40]
mov ecx, ebp
mov eax, ecx
lea esi, [esp + 0xd0]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x44], ebp
mov byte [ecx + ebp], 0
mov edi, 0x43d34c
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
repne scasb al, byte es:[edi]
mov eax, dword [edx]
mov edx, dword [esp + 0x44]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
mov byte [esp + 0x2d8], 5
cmp eax, esi
ja 0x40b01b
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
test esi, esi
jbe 0x40b062
mov ecx, dword [esp + 0x44]
push 0
lea ebp, [ecx + esi]
lea ecx, [esp + 0x40]
push ebp
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 0x40b062
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
mov ecx, esi
mov esi, 0x43d34c
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x40]
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 edi, 0x43d340
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [esp + 0x34]
repne scasb al, byte es:[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]
not ecx
dec ecx
mov esi, ecx
mov ecx, dword [eax]
sub ecx, edx
cmp ecx, esi
ja 0x40b08a
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
test esi, esi
jbe 0x40b0d1
mov edx, dword [esp + 0x34]
push 0
lea ecx, [esp + 0x30]
lea ebp, [edx + esi]
push ebp
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 0x40b0d1
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
push ebp
lea edi, [ecx + eax]
mov ecx, esi
mov edx, ecx
mov esi, 0x43d340
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x30]
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 [esp + 0x40]
test eax, eax
jne 0x40b0de
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push 0x43d33c
push eax
call dword [sym.imp.MSVCRT.dll_fopen]
mov esi, eax
add esp, 8
test esi, esi
jne 0x40b1c3
push eax
push 0x707070
push 1
push 0x43e158
push 0x43d32c
mov ecx, 0x43e0c8
call fcn.00415779
push 0x1c200
mov ecx, 0x43e508
call fcn.0041fefd
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [esp + 0x50]
push esi
push 2
push esi
mov ecx, dword [eax + 8]
push ecx
mov ecx, ebx
call fcn.00402030
push 1
lea ecx, [esp + 0x40]
mov byte [esp + 0x2dc], 4
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 1
lea ecx, [esp + 0x30]
mov byte [esp + 0x2dc], 3
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
lea ecx, [esp + 0x18]
mov byte [esp + 0x2d8], 2
call fcn.0041ceba
lea ecx, [esp + 0x14]
mov byte [esp + 0x2d8], 0
call fcn.0041ceba
mov eax, dword [esp + 0x20]
test eax, eax
je 0x40b514
mov cl, byte [eax - 1]
test cl, cl
je 0x40b1b0
cmp cl, 0xff
je 0x40b1b0
dec cl
mov byte [eax - 1], cl
mov ax, 8
jmp 0x40b814
dec eax
push eax
call fcn.004331e6
add esp, 4
mov ax, 8
jmp 0x40b814
mov edx, dword [esp + 0x4c]
push esi
push edx
push 1
lea ecx, [esp + 0x20]
call fcn.0041d6b4
mov ebp, dword [sym.imp.MSVCRT.dll_fwrite]
push eax
call ebp
push esi
call dword [sym.imp.MSVCRT.dll_fclose]
mov eax, dword [esp + 0x54]
add esp, 0x14
test eax, eax
jne 0x40b1f4
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push eax
push 1
mov ecx, 0x43e1c8
call fcn.0042bb80
mov edi, dword [esp + 0x50]
push ecx
mov eax, esp
mov dword [esp + 0x5c], esp
lea esi, [edi + 0x54]
push 0
push esi
push 0x8000
push 0xafe10000
push eax
mov ecx, ebx
call fcn.00403cb0
lea ecx, [esp + 0x1c]
call fcn.0041d132
push ecx
mov ecx, esp
mov dword [esp + 0x5c], esp
push 0
push esi
push 0x8000
push 0xafe00000
push ecx
mov ecx, ebx
call fcn.00403cb0
lea ecx, [esp + 0x18]
call fcn.0041d132
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0x1c200
mov ecx, 0x43e508
mov dword [esp + 0x54], eax
call fcn.0041fefd
cmp al, 0x7f
je 0x40b351
mov edx, dword [edi + 8]
xor esi, esi
push esi
push 2
push esi
push edx
mov ecx, ebx
call fcn.00402030
push esi
push 0x707070
push 1
push 0x43e158
push 0x43d370
mov ecx, 0x43e0c8
call fcn.00415779
mov eax, dword [esp + 0x40]
cmp eax, esi
je 0x40b2c5
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x40b2bc
cmp al, 0xff
je 0x40b2bc
dec al
mov byte [ecx], al
jmp 0x40b2c5
push ecx
call fcn.004331e6
add esp, 4
mov eax, dword [esp + 0x30]
mov dword [esp + 0x40], esi
cmp eax, esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
je 0x40b2f6
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x40b2ed
cmp al, 0xff
je 0x40b2ed
dec al
mov byte [ecx], al
jmp 0x40b2f6
push ecx
call fcn.004331e6
add esp, 4
lea ecx, [esp + 0x18]
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov byte [esp + 0x2d8], 2
call fcn.0041ceba
lea ecx, [esp + 0x14]
mov byte [esp + 0x2d8], 0
call fcn.0041ceba
mov ecx, dword [esp + 0x20]
cmp ecx, esi
je 0x40b514
mov al, byte [ecx - 1]
test al, al
je 0x40b50a
cmp al, 0xff
je 0x40b50a
dec al
mov byte [ecx - 1], al
mov ax, 8
jmp 0x40b814
mov eax, dword [edi + 8]
xor esi, esi
push esi
push 2
push esi
push eax
mov ecx, ebx
call fcn.00402030
test al, al
jne 0x40b415
push esi
push 0x707070
push 1
push 0x43e158
push 0x43d384
mov ecx, 0x43e0c8
call fcn.00415779
mov eax, dword [esp + 0x40]
cmp eax, esi
je 0x40b3ab
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x40b3a2
cmp al, 0xff
je 0x40b3a2
dec al
mov byte [ecx], al
jmp 0x40b3ab
push ecx
call fcn.004331e6
add esp, 4
mov eax, dword [esp + 0x30]
mov dword [esp + 0x40], esi
cmp eax, esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
je 0x40b3dc
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x40b3d3
cmp al, 0xff
je 0x40b3d3
dec al
mov byte [ecx], al
jmp 0x40b3dc
push ecx
call fcn.004331e6
add esp, 4
lea ecx, [esp + 0x18]
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov byte [esp + 0x2d8], 2
call fcn.0041ceba
lea ecx, [esp + 0x14]
mov byte [esp + 0x2d8], 0
call fcn.0041ceba
mov ecx, dword [esp + 0x20]
cmp ecx, esi
jmp 0x40b4ef
lea ecx, [esp + 0x14]
call fcn.0041d635
cmp eax, 0x8000
jne 0x40b576
lea ecx, [esp + 0x18]
call fcn.0041d635
cmp eax, 0x8000
jne 0x40b576
mov eax, dword [esp + 0x30]
cmp eax, esi
jne 0x40b44a
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push 0x43d33c
push eax
call dword [sym.imp.MSVCRT.dll_fopen]
mov esi, eax
xor edi, edi
add esp, 8
cmp esi, edi
jne 0x40b51d
mov eax, dword [esp + 0x40]
cmp eax, edi
je 0x40b48a
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x40b481
cmp al, 0xff
je 0x40b481
dec al
mov byte [ecx], al
jmp 0x40b48a
push ecx
call fcn.004331e6
add esp, 4
mov eax, dword [esp + 0x30]
mov dword [esp + 0x40], edi
cmp eax, edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
je 0x40b4bb
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x40b4b2
cmp al, 0xff
je 0x40b4b2
dec al
mov byte [ecx], al
jmp 0x40b4bb
push ecx
call fcn.004331e6
add esp, 4
lea ecx, [esp + 0x18]
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov byte [esp + 0x2d8], 2
call fcn.0041ceba
lea ecx, [esp + 0x14]
mov byte [esp + 0x2d8], 0
call fcn.0041ceba
mov ecx, dword [esp + 0x20]
cmp ecx, edi
je 0x40b514
mov al, byte [ecx - 1]
test al, al
je 0x40b50a
cmp al, 0xff
je 0x40b50a
dec al
mov byte [ecx - 1], al
mov ax, 8
jmp 0x40b814
dec ecx
push ecx
call fcn.004331e6
add esp, 4
mov ax, 8
jmp 0x40b814
push esi
lea ecx, [esp + 0x18]
call fcn.0041d635
push eax
push 1
lea ecx, [esp + 0x20]
call fcn.0041d6b4
push eax
call ebp
add esp, 0x10
lea ecx, [esp + 0x18]
push esi
call fcn.0041d635
push eax
push 1
lea ecx, [esp + 0x24]
call fcn.0041d6b4
push eax
call ebp
push esi
call dword [sym.imp.MSVCRT.dll_fclose]
mov eax, dword [esp + 0x44]
add esp, 0x14
cmp eax, edi
jne 0x40b569
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push eax
push 1
mov ecx, 0x43e1c8
call fcn.0042bb80
push 0
push 0x707070
push 1
push 0x43e158
push 0x43d31c
mov ecx, 0x43e0c8
call fcn.00415779
mov edi, 0x43e158
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x20]
push ebp
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 0x40b5da
mov edi, dword [esp + 0x20]
mov ecx, ebp
mov edx, ecx
mov esi, 0x43e158
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], ebp
mov byte [eax + ebp], 0
mov eax, dword [esp + 0x4c]
lea edx, [esp + 0x6c]
mov ecx, eax
shr ecx, 0xa
push ecx
push eax
push 0x43d2f8
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
lea edi, [esp + 0x7c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[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 edx, dword [esp + 0x24]
not ecx
dec ecx
mov esi, ecx
mov ecx, dword [eax]
sub ecx, edx
cmp ecx, esi
ja 0x40b61f
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
test esi, esi
jbe 0x40b666
mov edx, dword [esp + 0x24]
push 0
lea ecx, [esp + 0x20]
lea ebp, [edx + esi]
push ebp
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 0x40b666
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
lea edi, [ecx + eax]
mov ecx, esi
mov edx, ecx
lea esi, [esp + 0x6c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], ebp
mov byte [eax + ebp], 0
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
sub ecx, edx
mov eax, 0x10624dd3
mul ecx
mov ecx, edx
xor edx, edx
shr ecx, 6
mov eax, ecx
mov esi, 0x3c
div esi
mov eax, 0x88888889
push edx
mul ecx
shr edx, 5
push edx
lea ecx, [esp + 0x74]
push 0x43d2e0
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
lea edi, [esp + 0x7c]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
add esp, 0x10
repne scasb al, byte es:[edi]
mov eax, dword [edx]
mov edx, dword [esp + 0x24]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x40b6ce
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
test esi, esi
jbe 0x40b716
mov ecx, dword [esp + 0x24]
xor edi, edi
push edi
lea ebp, [ecx + esi]
lea ecx, [esp + 0x20]
push ebp
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 0x40b718
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov ecx, esi
lea esi, [esp + 0x6c]
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], ebp
mov byte [eax + ebp], 0
xor edi, edi
push edi
push 1
sub esp, 0x10
lea edx, [esp + 0x2b]
mov ecx, esp
mov dword [esp + 0x70], esp
push edx
push 0x43e158
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const___class_std::allocator_char__const__]
sub esp, 0x10
lea eax, [esp + 0x44]
mov ecx, esp
mov dword [esp + 0x7c], esp
push eax
mov byte [esp + 0x304], 6
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
mov ecx, 0x43e0c8
mov byte [esp + 0x300], 5
call fcn.004157a6
mov ecx, ebx
call fcn.00402a60
mov eax, dword [esp + 0x40]
cmp eax, edi
je 0x40b78e
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x40b785
cmp al, 0xff
je 0x40b785
dec al
mov byte [ecx], al
jmp 0x40b78e
push ecx
call fcn.004331e6
add esp, 4
mov eax, dword [esp + 0x30]
mov dword [esp + 0x40], edi
cmp eax, edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
je 0x40b7bf
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x40b7b6
cmp al, 0xff
je 0x40b7b6
dec al
mov byte [ecx], al
jmp 0x40b7bf
push ecx
call fcn.004331e6
add esp, 4
lea ecx, [esp + 0x18]
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov byte [esp + 0x2d8], 2
call fcn.0041ceba
lea ecx, [esp + 0x14]
mov byte [esp + 0x2d8], 0
call fcn.0041ceba
mov ecx, dword [esp + 0x20]
cmp ecx, edi
je 0x40b811
mov al, byte [ecx - 1]
test al, al
je 0x40b807
cmp al, 0xff
je 0x40b807
dec al
mov byte [ecx - 1], al
jmp 0x40b811
dec ecx
push ecx
call fcn.004331e6
add esp, 4
xor ax, ax
mov ecx, dword [esp + 0x2d0]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x2cc
ret