Function at 0x414880
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x429475
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc80
mov al, byte [ebp + 0xb]
push ebx
push esi
push edi
xor edi, edi
lea ecx, [ebp - 0x20]
push edi
mov dword [ebp - 0x28], edi
mov byte [ebp - 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 ecx, dword [0x4319f4]
mov dword [ebp - 4], edi
push ecx
push 0x5c4bffff
call fcn.004107d0
mov cl, byte [0x4319cb]
mov edx, dword [0x431a08]
add cl, al
push 0x6f29ffff
push edx
mov byte [0x4319cb], cl
call fcn.00410920
mov bl, byte [0x4319c8]
mov byte [0x4319cc], al
movsx ecx, word [0x4319d4]
movsx edx, byte [0x4319d1]
test bl, bl
setne al
push ecx
push edx
mov byte [0x4319c8], al
call fcn.00410820
mov ecx, dword [0x43194c]
mov edx, dword [0x431950]
mov byte [0x4319c9], al
mov eax, dword [0x4319bc]
mov dword [0x43194c], eax
mov eax, dword [0x4319c0]
mov dword [0x4319c0], edx
mov dword [0x4319bc], ecx
mov ecx, dword [0x431954]
mov dword [0x431950], eax
mov eax, dword [0x4319c4]
lea edx, [ebp - 0x8c]
push edx
mov dword [0x4319c4], ecx
mov dword [0x431954], eax
call fcn.00415bd0
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
add esp, 0x1c
mov ecx, 0x431938
mov esi, dword [eax]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Split_void_]
mov eax, dword [0x431940]
cmp eax, esi
jae 0x414986
mov esi, eax
mov ebx, dword [sym.imp.MSVCRT.dll_memmove]
cmp esi, edi
jbe 0x4149cd
mov ecx, dword [0x43193c]
sub eax, esi
push eax
lea edx, [esi + ecx]
push edx
push ecx
call ebx
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 0x4149cd
mov ecx, dword [0x43193c]
mov dword [0x431940], edi
mov byte [edi + ecx], 0
movsx edx, byte [0x4319cb]
movsx eax, byte [0x4319c8]
push edx
push eax
call fcn.004107d0
add word [0x4319d4], ax
add esp, 8
mov byte [ebp - 0xc8c], 0
mov byte [ebp - 0x88c], 0
mov byte [ebp - 0x48c], 0
mov al, byte [0x4319cd]
mov byte [ebp - 4], 2
test al, al
jne 0x414a1f
cmp word [0x4319e0], 0
mov byte [0x4319d1], 0
je 0x414a26
mov byte [0x4319d1], 1
lea ecx, [ebp - 0xc8c]
call fcn.00412440
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 edi, dword [ecx]
mov ecx, 0x431978
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Split_void_]
mov eax, dword [0x431980]
cmp eax, edi
jae 0x414a4f
mov edi, eax
test edi, edi
jbe 0x414a90
mov ecx, dword [0x43197c]
sub eax, edi
push eax
lea edx, [edi + ecx]
push edx
push ecx
call ebx
mov esi, dword [0x431980]
add esp, 0xc
sub esi, edi
mov ecx, 0x431978
push 0
push esi
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 0x414a90
mov edx, dword [0x43197c]
mov dword [0x431980], esi
mov byte [esi + edx], 0
movsx ecx, byte [0x4319ce]
mov eax, dword [0x4319fc]
push eax
push ecx
call fcn.004108a0
mov dl, byte [ebp + 0xb]
add esp, 8
lea ecx, [ebp - 0x60]
mov byte [0x4319cb], al
push 0
mov byte [ebp - 0x60], 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, [ebp - 0xc8c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [ebp - 0xc8c]
push ecx
push eax
lea ecx, [ebp - 0x60]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
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 - 4], 3
mov esi, dword [ecx]
mov ecx, 0x431998
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Split_void_]
mov eax, dword [0x4319a0]
cmp eax, esi
jae 0x414aff
mov esi, eax
test esi, esi
jbe 0x414b40
mov ecx, dword [0x43199c]
sub eax, esi
push eax
lea edx, [esi + ecx]
push edx
push ecx
call ebx
mov edi, dword [0x4319a0]
add esp, 0xc
sub edi, esi
mov ecx, 0x431998
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 0x414b40
mov edx, dword [0x43199c]
mov dword [0x4319a0], edi
mov byte [edi + edx], 0
mov eax, dword [0x4319f8]
mov ecx, dword [0x431a08]
inc word [0x4319d6]
or eax, 0x327fffff
add ecx, eax
lea edi, [ebp - 0x88c]
mov dword [0x431a08], ecx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [ebp - 0x88c]
push ecx
lea ecx, [ebp - 0x60]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
push 0xa529ffff
push 0xb43dffff
call fcn.00410920
mov word [0x4319e4], ax
lea edi, [ebp - 0x48c]
or ecx, 0xffffffff
xor eax, eax
add esp, 8
lea edx, [ebp - 0x48c]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov word [0x4319d4], 0xffff
push ecx
push edx
lea ecx, [ebp - 0x60]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov eax, dword [0x4319f0]
mov ecx, dword [0x431a04]
push eax
push ecx
call fcn.004109b0
mov byte [0x4319ce], al
mov al, byte [0x431578]
sub al, 0x4d
add esp, 8
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.00428770
mov ecx, esp
mov edx, 0x431578
call fcn.00426650
mov edx, eax
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
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, 0x431948
mov esi, dword [edx]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Split_void_]
mov eax, dword [0x431950]
cmp eax, esi
jae 0x414c35
mov esi, eax
test esi, esi
jbe 0x414c75
mov ecx, dword [0x43194c]
sub eax, esi
push eax
lea edx, [esi + ecx]
push edx
push ecx
call ebx
mov edi, dword [0x431950]
add esp, 0xc
sub edi, esi
mov ecx, 0x431948
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 0x414c75
mov eax, dword [0x43194c]
mov dword [0x431950], edi
mov byte [edi + eax], 0
mov ecx, dword [ebp - 0x80]
lea edx, [ebp - 0x4c]
push ecx
push edx
call fcn.00406510
add esp, 8
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
xor esi, esi
mov byte [ebp - 4], 4
mov edx, dword [ecx]
lea ecx, [ebp - 0x20]
push edx
push esi
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
push 1
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 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_]
push 0x42c5ffff
push 0xdd7dffff
call fcn.004109f0
mov word [0x4319e4], ax
mov eax, dword [0x4319f8]
mov edx, dword [0x4319f4]
lea ecx, [eax*8]
sub ecx, eax
neg ecx
shl ecx, 9
sub ecx, eax
shl ecx, 0x13
sub ecx, eax
lea eax, [ebp - 0x4c]
add edx, ecx
inc word [0x4319d6]
mov dword [0x4319f4], edx
mov edx, dword [ebp - 0x7c]
push edx
push eax
call fcn.00406510
add esp, 0x10
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 - 4], 5
mov edx, dword [ecx]
lea ecx, [ebp - 0x20]
push edx
push esi
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
push 1
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 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_]
movsx ecx, word [0x4319da]
mov al, byte [0x4319cb]
push ecx
dec al
push 0x566bffff
mov byte [0x4319ca], al
call fcn.004108e0
mov ecx, dword [0x431a04]
mov edx, dword [ebp - 0x78]
add ecx, eax
lea eax, [ebp - 0x4c]
push edx
push eax
mov dword [0x431a04], ecx
call fcn.00406510
add esp, 0x10
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 - 4], 6
mov edx, dword [ecx]
lea ecx, [ebp - 0x20]
push edx
push esi
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov byte [ebp - 4], 3
push 1
lea ecx, [ebp - 0x4c]
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 cl, byte [0x4319c8]
mov bl, byte [0x4319cb]
or al, 0xff
sub al, cl
add bl, al
mov al, byte [0x431570]
sub al, 0x4d
mov byte [0x4319cb], bl
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.00428770
mov ecx, esp
mov edx, 0x431570
call fcn.00426650
mov edx, eax
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov ecx, dword [0x431a04]
mov eax, dword [0x43195c]
mov edx, dword [0x43198c]
add ecx, 0x11ffff
mov dword [0x43198c], eax
mov eax, dword [0x431960]
mov dword [0x4319ec], ecx
mov ecx, dword [0x431990]
mov dword [0x431990], eax
mov eax, dword [0x431964]
mov dword [0x43195c], edx
mov edx, dword [0x431994]
mov dword [0x431994], eax
mov dword [0x431960], ecx
movsx eax, word [0x4319e4]
movsx ecx, word [0x4319de]
push eax
push ecx
mov dword [0x431964], edx
call fcn.004107d0
mov dl, byte [0x4319c8]
add esp, 8
add dl, al
mov eax, dword [ebp - 0x5c]
cmp eax, esi
mov byte [0x4319c8], dl
jne 0x414e65
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
call fcn.00418660
mov edx, eax
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
cmp word [0x4319da], si
jne 0x414e9f
mov eax, dword [0x4319fc]
mov dword [0x4319f8], esi
cmp eax, esi
je 0x414ea9
mov dword [0x4319f8], 1
movsx edx, word [0x4319d2]
mov eax, dword [0x431a04]
push edx
push eax
mov dword [ebp - 0x3c], esi
mov byte [ebp - 0xd], 0
call fcn.004108e0
mov cl, byte [0x4319ce]
add esp, 8
mov dword [0x4319f0], eax
push ecx
push 1
mov ecx, 0x431948
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_unsigned_int__char_]
movsx edx, word [0x4319da]
mov eax, dword [0x4319f4]
push edx
push eax
call fcn.004109f0
lea ecx, [ebp - 0x74]
mov dword [0x431a0c], eax
push ecx
call fcn.00417360
movsx edx, byte [0x4319cc]
push 0xf393ffff
push edx
mov byte [ebp - 4], 8
call fcn.00410970
mov cl, byte [0x4319cb]
add esp, 0x14
add cl, al
mov eax, dword [0x431a04]
cmp eax, esi
mov byte [0x4319cb], cl
je 0x414f40
cmp word [0x4319e0], si
je 0x414f40
mov eax, 1
jmp 0x414f42
xor eax, eax
mov cl, byte [0x4319d1]
add cl, al
mov eax, dword [ebp - 0x6c]
cmp eax, esi
mov byte [0x4319d1], cl
jbe 0x4151cc
movsx eax, word [0x4319da]
movsx ecx, word [0x4319d2]
push eax
push ecx
call fcn.004109b0
mov edx, dword [0x43198c]
mov ecx, dword [0x431990]
mov dword [0x4319f4], eax
mov eax, dword [0x43199c]
mov dword [0x43198c], eax
mov eax, dword [0x4319a0]
mov dword [0x431990], eax
mov eax, dword [0x4319a4]
mov dword [0x43199c], edx
mov edx, dword [0x431994]
mov dword [0x431994], eax
mov eax, dword [ebp - 0x70]
add esp, 8
mov dword [0x4319a0], ecx
test eax, eax
mov dword [0x4319a4], edx
jne 0x414fc6
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 0
push 0
push 3
push 0
push 1
push SysReAllocString
push eax
call dword [sym.imp.KERNEL32.DLL_CreateFileA]
mov ecx, dword [0x431a08]
mov ebx, eax
movsx eax, word [0x4319da]
push eax
push ecx
call fcn.00410a30
movsx edx, byte [0x4319ce]
mov cl, byte [0x4319d0]
push edx
add cl, al
push 0xc0d7ffff
mov byte [0x4319d0], cl
call fcn.00410970
add word [0x4319d4], ax
add esp, 0x10
cmp word [0x4319e0], 0
je 0x415039
mov al, byte [0x4319c9]
mov dword [0x4319f4], 1
test al, al
jne 0x415043
mov dword [0x4319f4], 0
cmp ebx, 0xffffffff
je 0x4151cc
mov eax, dword [0x4319f0]
push eax
push 0x1ea9ffff
call fcn.00410860
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 [0x4319f0], eax
add esp, 8
mov edi, dword [ecx]
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__::_Split_void_]
mov eax, dword [0x431930]
cmp eax, edi
jae 0x415082
mov edi, eax
test edi, edi
jbe 0x4150c7
mov ecx, dword [0x43192c]
sub eax, edi
push eax
lea edx, [edi + ecx]
push edx
push ecx
call dword [sym.imp.MSVCRT.dll_memmove]
mov esi, dword [0x431930]
add esp, 0xc
sub esi, edi
mov ecx, 0x431928
push 0
push esi
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 0x4150c7
mov edx, dword [0x43192c]
mov dword [0x431930], esi
mov byte [esi + edx], 0
push 2
push 0
push 0xfffffffffffffffc
push ebx
mov byte [0x4319ce], 0
call dword [sym.imp.KERNEL32.DLL_SetFilePointer]
cmp eax, 0xffffffff
je 0x4151cc
movsx eax, word [0x4319da]
push eax
push 0x73a3ffff
call fcn.00410920
mov ecx, dword [0x431a0c]
movsx edx, byte [0x4319c8]
add ecx, eax
mov dword [0x431a0c], ecx
movsx ecx, byte [0x4319c9]
push ecx
push edx
call fcn.00410970
mov cl, byte [0x4319d1]
add esp, 0x10
add cl, al
lea eax, [ebp - 0x24]
mov byte [0x4319d1], cl
push 0
push eax
lea ecx, [ebp - 0x3c]
push 4
push ecx
push ebx
mov dword [ebp - 0x24], 0
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
je 0x4151cc
cmp dword [ebp - 0x24], 4
jne 0x4151cc
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, 0x431938
mov edi, dword [edx]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Split_void_]
mov eax, dword [0x431940]
cmp eax, edi
jae 0x415170
mov edi, eax
test edi, edi
jbe 0x4151b4
mov ecx, dword [0x43193c]
sub eax, edi
push eax
lea edx, [edi + ecx]
push edx
push ecx
call dword [sym.imp.MSVCRT.dll_memmove]
mov esi, dword [0x431940]
add esp, 0xc
sub esi, edi
mov ecx, 0x431938
push 0
push esi
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 0x4151b4
mov eax, dword [0x43193c]
mov dword [0x431940], esi
mov byte [esi + eax], 0
mov cl, byte [0x4319cd]
push ecx
push 1
mov ecx, 0x4319b8
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_unsigned_int__char_]
mov byte [ebp - 0xd], 1
mov cl, byte [0x4319cf]
mov al, byte [ebp - 0xd]
inc cl
test al, al
mov byte [0x4319cf], cl
je 0x41528b
mov eax, dword [0x4319f8]
push eax
push eax
call fcn.00410860
push 0x7dffff
push 0x58f3ffff
mov byte [0x4319cb], al
call fcn.004109f0
mov bl, byte [0x4319cc]
add esp, 0x10
add bl, al
mov al, byte [0x431564]
sub al, 0x4d
mov byte [0x4319cc], bl
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.00428770
mov ecx, esp
mov edx, 0x431564
call fcn.00426650
mov edx, eax
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov edx, dword [ebp - 0x3c]
lea eax, [ebp - 0x4c]
push edx
push eax
call fcn.00406510
add esp, 8
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 - 4], 0xa
mov edx, dword [ecx]
lea ecx, [ebp - 0x20]
push edx
push 0
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
push 1
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 8
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 0x415308
movsx eax, word [0x4319e2]
movsx ecx, byte [0x4319d0]
push eax
push ecx
call fcn.004109f0
add word [0x4319d8], ax
movsx edx, word [0x4319d4]
movsx eax, word [0x4319d6]
push edx
push eax
call fcn.00410a30
mov bl, byte [0x4319cd]
add esp, 0x10
add bl, al
mov al, byte [0x431554]
sub al, 0x4d
mov byte [0x4319cd], bl
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.00428770
mov ecx, esp
mov edx, 0x431554
call fcn.00426650
mov edx, eax
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov ebx, dword [0x4319f8]
mov edi, dword [0x431a0c]
xor eax, eax
push 0x8c3bffff
test ebx, ebx
setne al
add edi, eax
push 0xe13bffff
mov dword [0x431a0c], edi
call fcn.00410a30
add esp, 8
inc al
mov byte [0x4319cc], al
mov al, byte [0x431548]
sub al, 0x4d
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.00428770
mov ecx, esp
mov edx, 0x431548
call fcn.00426650
mov edx, eax
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov ecx, dword [0x431a04]
inc word [0x4319de]
push 0x762bffff
push ecx
call fcn.004108e0
mov edx, dword [0x431a04]
mov cl, byte [0x4319c9]
add edx, eax
mov al, byte [0x4319d6]
imul byte [0x4319cd]
mov dword [0x431a04], edx
lea edx, [ebp - 0x4c]
add cl, al
push edx
mov byte [0x4319c9], cl
call fcn.00405ec0
add esp, 0xc
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 - 4], 0xb
mov edx, dword [ecx]
lea ecx, [ebp - 0x20]
push edx
push 0
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
push 1
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 8
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
movsx eax, word [0x4319e2]
push 0x2fdfffff
push eax
call fcn.00410970
mov bl, byte [0x4319c8]
mov ecx, dword [0x4319f4]
add bl, al
push ecx
push 0x5399ffff
mov byte [0x4319c8], bl
call fcn.00410970
mov dword [0x431a04], eax
mov al, byte [0x43153c]
sub al, 0x4d
add esp, 0x10
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.00428770
mov ecx, esp
mov edx, 0x43153c
call fcn.00426650
mov edx, eax
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
movsx edx, word [0x4319e2]
push edx
push 0x3a67ffff
call fcn.004108e0
mov esi, dword [0x431a04]
mov edi, 0x431538
add esi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [0x431a04], esi
push ecx
push 0x431538
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov eax, dword [0x4319e8]
push 0x5397ffff
push eax
call fcn.004109f0
mov ebx, dword [0x4319e8]
add esp, 8
add ebx, eax
mov al, byte [0x43152c]
sub al, 0x4d
mov dword [0x4319e8], ebx
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.00428770
mov ecx, esp
mov edx, 0x43152c
call fcn.00426650
mov edx, eax
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
movsx edx, word [0x4319e0]
mov ecx, dword [0x431a08]
push ecx
push edx
call fcn.004108e0
add esp, 8
mov dword [0x431a08], eax
call fcn.00401ab0
mov eax, dword [eax*4 + 0x431480]
mov al, byte [eax]
sub al, 0x4d
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.00428770
mov esi, esp
call fcn.00401ab0
mov edx, dword [eax*4 + 0x431480]
mov ecx, esi
call fcn.00426650
mov edx, eax
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov ecx, dword [0x431a0c]
push ecx
push 0x88c7ffff
call fcn.00410860
mov cl, byte [0x4319cc]
add esp, 8
add cl, al
mov al, byte [0x4319ce]
test al, al
mov byte [0x4319cc], cl
mov byte [0x4319c9], 1
jne 0x4155a3
mov eax, dword [0x431a0c]
test eax, eax
jne 0x4155a3
xor eax, eax
jmp 0x4155a8
mov eax, 1
add word [0x4319d2], ax
lea edx, [ebp - 0x50]
push edx
push 8
call fcn.00411b40
movsx eax, byte [0x4319c8]
mov ecx, dword [0x4319e8]
push 0x8db5ffff
push 0x4255ffff
lea edx, [ecx + eax + 0x11d3ffff]
mov dword [0x4319e8], edx
call fcn.004109b0
mov cl, byte [0x4319cf]
add esp, 0x10
add cl, al
mov al, byte [ebp + 0xb]
mov byte [0x4319cf], cl
push 0
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x38], 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, 0x431538
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [ebp - 0x38]
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 0x415648
mov edi, dword [ebp - 0x34]
mov ecx, ebx
mov edx, ecx
mov esi, 0x431538
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, [ebp - 0x38]
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, word [0x4319de]
push 0x1de7ffff
push eax
mov byte [ebp - 4], 0xc
call fcn.00410970
mov ecx, dword [0x4319f8]
push 0xed4bffff
push ecx
mov dword [0x4319f0], eax
call fcn.004108e0
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 [0x43195c]
add esp, 0x10
mov word [0x4319d8], ax
mov ebx, dword [edx]
test ecx, ecx
je 0x4156c8
mov al, byte [ecx - 1]
test al, al
je 0x4156c8
cmp al, 0xff
je 0x4156c8
mov esi, ecx
push 1
mov ecx, 0x431958
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, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
mov ecx, 0x431958
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
mov ecx, dword [0x43195c]
mov eax, dword [0x431960]
cmp eax, ebx
jae 0x4156d3
mov ebx, eax
test ebx, ebx
jbe 0x41570e
sub eax, ebx
lea edx, [ebx + ecx]
push eax
push edx
push ecx
call dword [sym.imp.MSVCRT.dll_memmove]
mov esi, dword [0x431960]
add esp, 0xc
sub esi, ebx
mov ecx, 0x431958
push 0
push esi
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 0x41570e
push esi
mov ecx, 0x431958
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 [ebp - 0x50]
lea eax, [ebp - 0x38]
push eax
push ecx
call fcn.00421850
add esp, 8
test eax, eax
jne 0x415915
mov esi, dword [0x431a04]
or edx, 0xffffffff
lea eax, [ebp - 0x24]
sub edx, esi
inc word [0x4319e0]
push eax
push 2
mov word [0x4319e4], dx
call fcn.00411b40
mov eax, dword [0x43199c]
mov ecx, dword [0x43197c]
mov edx, dword [0x431980]
mov dword [0x43197c], eax
mov eax, dword [0x4319a0]
mov dword [0x4319a0], edx
movsx edx, byte [0x4319c9]
mov dword [0x43199c], ecx
mov ecx, dword [0x431984]
mov dword [0x431980], eax
mov eax, dword [0x4319a4]
push edx
push 0x67a7ffff
mov dword [0x4319a4], ecx
mov dword [0x431984], eax
call fcn.00410a30
mov byte [0x4319d0], al
lea eax, [ebp - 0x28]
push eax
push 3
call fcn.00411b40
mov cl, byte [0x4319ca]
mov dl, byte [0x4319d1]
add cl, dl
push 0x4c03ffff
push 0x30d7ffff
mov byte [0x4319d0], cl
call fcn.004108a0
mov word [0x4319d6], ax
mov eax, dword [ebp - 0x24]
lea edx, [ebp - 0x64]
push edx
push eax
call fcn.004221a0
add esp, 0x28
test eax, eax
je 0x41585d
mov edx, dword [ebp - 0x28]
lea ecx, [ebp - 0x64]
push ecx
push edx
call fcn.004221a0
add esp, 8
test eax, eax
je 0x41585d
mov eax, dword [0x4319e8]
push eax
push 0x8c03ffff
call fcn.00410820
mov ecx, dword [0x4319fc]
add esp, 8
add ecx, eax
inc word [0x4319d6]
mov dword [0x4319fc], ecx
mov edi, 0x431528
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov ebx, ecx
lea ecx, [ebp - 0x38]
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 0x4158a0
mov edi, dword [ebp - 0x34]
mov ecx, ebx
mov edx, ecx
mov esi, 0x431528
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
jmp 0x415891
mov edi, 0x431538
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [ebp - 0x38]
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 0x4158a0
mov edi, dword [ebp - 0x34]
mov ecx, ebx
mov eax, ecx
mov esi, 0x431538
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push ebx
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x38]
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 ecx, word [0x4319dc]
mov edx, dword [0x431a04]
push ecx
push edx
call fcn.004108e0
mov dl, byte [0x4319ca]
mov ecx, dword [ebp - 0x50]
add dl, al
lea eax, [ebp - 0x38]
push eax
push ecx
mov byte [0x4319ca], dl
call fcn.00421e80
movsx dx, byte [0x4319ca]
and dx, word [0x4319de]
mov eax, dword [0x4319e8]
add esp, 0x10
add word [0x4319d4], dx
test eax, eax
jne 0x415904
mov al, byte [0x4319cf]
mov dword [0x431a0c], 0
test al, al
je 0x41590e
mov dword [0x431a0c], 1
mov byte [0x4319c9], 0xfe
cmp word [0x4319d6], 0
je 0x41592f
mov al, byte [0x4319ce]
test al, al
je 0x41592f
mov eax, 1
jmp 0x415931
xor eax, eax
add word [0x4319e4], ax
mov al, byte [0x431520]
sub al, 0x4d
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.00428770
mov ecx, esp
mov edx, 0x431520
call fcn.00426650
mov edx, eax
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
movsx eax, byte [0x4319d0]
push eax
push 0xea21ffff
call fcn.00410860
mov ecx, dword [0x431a00]
mov ebx, dword [0x431a04]
imul ecx, ecx, 0xeb2dffff
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 ebx, eax
add esp, 8
mov dword [0x431a04], ebx
mov dword [0x4319f8], ecx
mov eax, dword [edx]
push eax
lea ecx, [ebp - 0x38]
push 0
push ecx
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
push 0x22b3ffff
push 0x867ffff
call fcn.00410970
add word [0x4319e4], ax
mov al, byte [0x431514]
sub al, 0x4d
add esp, 8
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.00428770
mov ecx, esp
mov edx, 0x431514
call fcn.00426650
mov ebx, eax
or ecx, 0xffffffff
mov edi, ebx
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 [ebp - 0x18]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x415a22
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
xor edi, edi
cmp esi, edi
jbe 0x415a6a
mov ecx, dword [ebp - 0x18]
push edi
lea eax, [esi + ecx]
lea ecx, [ebp - 0x20]
push eax
mov dword [ebp - 0x28], eax
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 0x415a6a
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov ecx, esi
mov esi, ebx
lea edi, [edx + eax]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x28]
mov ecx, edx
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 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_]
xor edi, edi
mov ecx, dword [0x4319fc]
push 0xee83ffff
push ecx
call fcn.004108a0
push 0x6399ffff
push 0x98bffff
mov word [0x4319d2], ax
call fcn.004108a0
lea edx, [ebp - 0x4c]
mov dword [0x4319ec], eax
push edx
call fcn.00406030
add esp, 0x14
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 - 4], 0xe
mov edx, dword [ecx]
lea ecx, [ebp - 0x20]
push edx
push edi
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
push 1
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0xc
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 eax, dword [0x4319f8]
push eax
push 0x6643ffff
call fcn.004108e0
mov dl, byte [0x4319c9]
mov esi, dword [ebp + 8]
mov cl, byte [ebp - 0x20]
add dl, al
mov byte [0x4319c9], dl
mov byte [esi], cl
mov dword [esi + 4], edi
mov dword [esi + 8], edi
mov dword [esi + 0xc], edi
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, 8
lea ecx, [ebp - 0x20]
mov eax, dword [edx]
push eax
push edi
push ecx
mov ecx, esi
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov ecx, dword [ebp - 0x34]
cmp ecx, edi
je 0x415b33
mov al, byte [ecx - 1]
test al, al
je 0x415b29
cmp al, 0xff
je 0x415b29
dec al
mov byte [ecx - 1], al
jmp 0x415b33
dec ecx
push ecx
call fcn.004286a0
add esp, 4
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x34], edi
cmp ecx, edi
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x2c], edi
je 0x415b5f
mov al, byte [ecx - 1]
test al, al
je 0x415b55
cmp al, 0xff
je 0x415b55
dec al
mov byte [ecx - 1], al
jmp 0x415b5f
dec ecx
push ecx
call fcn.004286a0
add esp, 4
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x70], edi
cmp ecx, edi
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x68], edi
je 0x415b8b
mov al, byte [ecx - 1]
test al, al
je 0x415b81
cmp al, 0xff
je 0x415b81
dec al
mov byte [ecx - 1], al
jmp 0x415b8b
dec ecx
push ecx
call fcn.004286a0
add esp, 4
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x5c], edi
cmp ecx, edi
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x54], edi
je 0x415bb7
mov al, byte [ecx - 1]
test al, al
je 0x415bad
cmp al, 0xff
je 0x415bad
dec al
mov byte [ecx - 1], al
jmp 0x415bb7
dec ecx
push ecx
call fcn.004286a0
add esp, 4
mov ecx, dword [ebp - 0xc]
lea esp, [ebp - 0xc98]
mov eax, esi
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret