Function at 0x406150
Capabilities:
Delete file
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x420196
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x11c
push ebx
push ebp
push esi
mov esi, ecx
push edi
lea ecx, [esp + 0xac]
mov dword [esp + 0x28], esi
call fcn.0040c3b0
xor ebx, ebx
push str.Updatelist.dll
lea ecx, [esp + 0xb0]
mov dword [esp + 0x138], ebx
call fcn.0040c520
test al, al
je 0x406b68
lea eax, [esp + 0x30]
lea ecx, [esp + 0xac]
push eax
call fcn.00406dc0
lea ecx, [esp + 0xac]
mov byte [esp + 0x134], 1
call fcn.0040c920
mov cl, byte [esp + 0x13]
mov ebp, eax
mov byte [esp + 0x54], cl
push ebx
lea ecx, [esp + 0x58]
mov dword [esp + 0x20], ebp
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, 0x428878
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x428878
lea ecx, [esp + 0x5c]
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 dl, byte [esp + 0x13]
push ebx
lea ecx, [esp + 0x68]
mov byte [esp + 0x138], 2
mov byte [esp + 0x68], 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_]
mov edi, 0x428878
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x428878
lea ecx, [esp + 0x6c]
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_]
lea eax, [esp + 0x13]
lea ecx, [esp + 0x78]
push eax
push 0x428878
mov byte [esp + 0x13c], 3
mov dword [esp + 0x7c], ebx
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__]
mov dword [esp + 0x50], 0x422954
mov ecx, dword [esi + 0x1ec]
lea edi, [esi + 0x1e8]
cmp ecx, ebx
mov byte [esp + 0x134], 4
jne 0x40627e
xor edx, edx
jmp 0x406296
mov esi, dword [edi + 8]
mov eax, 0x92492493
sub esi, ecx
imul esi
add edx, esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, ebp
jae 0x4062d1
cmp ecx, ebx
jne 0x4062a2
xor edx, edx
jmp 0x4062ba
mov esi, dword [edi + 8]
mov eax, 0x92492493
sub esi, ecx
imul esi
add edx, esi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov eax, dword [edi + 8]
lea ecx, [esp + 0x50]
push ecx
mov ecx, ebp
sub ecx, edx
push ecx
push eax
mov ecx, edi
call fcn.00408400
jmp 0x4062f7
mov ecx, edi
call fcn.004083d0
cmp ebp, eax
jae 0x4062f7
mov eax, dword [edi + 8]
mov ecx, dword [edi + 4]
lea edx, [ebp*8]
push eax
sub edx, ebp
lea eax, [ecx + edx*8]
mov ecx, edi
push eax
call fcn.004087f0
mov dword [esp + 0x50], 0x422954
push 1
lea ecx, [esp + 0x7c]
mov byte [esp + 0x138], 6
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 + 0x68]
mov byte [esp + 0x138], 5
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 + 0x58]
mov byte [esp + 0x138], 1
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
xor ebx, ebx
test ebp, ebp
jle 0x4064f0
xor esi, esi
mov dword [esp + 0x18], esi
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0x58], cl
lea ecx, [esp + 0x58]
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, 0x428878
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x428878
lea ecx, [esp + 0x5c]
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_]
lea edx, [esp + 0x13]
lea ecx, [esp + 0x68]
push edx
push 0x428878
mov byte [esp + 0x13c], 7
mov dword [esp + 0x6c], 0
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__]
mov dword [esp + 0x50], 0x422950
lea eax, [esp + 0x50]
lea ecx, [esp + 0xac]
push eax
push ebx
mov byte [esp + 0x13c], 8
call fcn.0040c930
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0x44], cl
lea ecx, [esp + 0x44]
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, 0x428878
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x44]
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 0x406423
mov edi, dword [esp + 0x44]
mov ecx, ebp
mov edx, ecx
mov esi, 0x428878
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 + 0x44]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x48], ebp
mov byte [eax + ebp], 0
lea ecx, [esp + 0x40]
lea eax, [esp + 0x54]
push ecx
lea ecx, [esp + 0x6c]
sub esp, 0x10
mov byte [esp + 0x148], 9
mov edx, esp
mov dword [esp + 0x28], esp
push eax
push ecx
push edx
call sub.MSVCP60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__
add esp, 0xc
call fcn.004055f0
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 edi, dword [esp + 0x3c]
add esp, 0x14
mov ecx, dword [edx]
mov eax, dword [edi + 0x1ec]
push ecx
lea edx, [esp + 0x58]
push 0
push edx
lea ecx, [esi + eax + 4]
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 [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov eax, dword [edi + 0x1ec]
mov edx, dword [ecx]
lea ecx, [esp + 0x40]
push edx
push 0
push ecx
lea ecx, [esi + eax + 0x14]
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_]
push 1
lea ecx, [esp + 0x44]
mov byte [esp + 0x138], 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_]
mov dword [esp + 0x50], 0x422950
push 1
lea ecx, [esp + 0x6c]
mov byte [esp + 0x138], 0xa
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 + 0x58]
mov byte [esp + 0x138], 1
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 [esp + 0x1c]
inc ebx
add esi, 0x38
cmp ebx, eax
mov dword [esp + 0x18], esi
jl 0x40634b
push 0x38
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov byte [esp + 0x134], 0xb
je 0x406524
push 0x428878
push str.UTF_8
push 0x4264dc
mov ecx, eax
call fcn.004028d0
mov esi, eax
jmp 0x406526
xor esi, esi
push 0x48
mov byte [esp + 0x138], 1
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov byte [esp + 0x134], 0xc
je 0x406557
mov ecx, eax
call fcn.004020f0
mov edi, eax
mov dword [esp + 0x18], edi
jmp 0x406563
mov dword [esp + 0x18], 0
mov edi, dword [esp + 0x18]
push esi
mov ecx, edi
mov byte [esp + 0x138], 1
call fcn.00401920
push 0x50
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov byte [esp + 0x134], 0xd
je 0x40659d
push str.ROOT
mov ecx, eax
call fcn.00401b10
mov esi, eax
jmp 0x40659f
xor esi, esi
push esi
mov ecx, edi
mov byte [esp + 0x138], 1
call fcn.00401920
push 0x50
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov byte [esp + 0x134], 0xe
je 0x4065d9
push str.UPDATE
mov ecx, eax
call fcn.00401b10
mov ebp, eax
jmp 0x4065db
xor ebp, ebp
push str.UPDATE
push str.class
mov ecx, ebp
mov byte [esp + 0x13c], 1
call fcn.00401c70
push ebp
mov ecx, esi
call fcn.00401920
push 0x50
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov byte [esp + 0x134], 0xf
je 0x406626
push str.UPDATELIST_HEAD
mov ecx, eax
call fcn.00401b10
mov esi, eax
jmp 0x406628
xor esi, esi
push str.UPDATELIST_HEAD
push str.class
mov ecx, esi
mov byte [esp + 0x13c], 1
call fcn.00401c70
push esi
mov ecx, ebp
call fcn.00401920
push 0x50
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov byte [esp + 0x134], 0x10
je 0x406673
push str.AREACODE
mov ecx, eax
call fcn.00401b10
mov edi, eax
jmp 0x406675
xor edi, edi
push edi
mov ecx, esi
mov dword [esp + 0x24], edi
mov byte [esp + 0x138], 1
call fcn.00401920
push 0x30
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov esi, eax
add esp, 4
mov dword [esp + 0x14], esi
test esi, esi
mov byte [esp + 0x134], 0x11
je 0x4066ea
mov ebx, dword [esp + 0x34]
test ebx, ebx
jne 0x4066b3
mov ebx, 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 4
mov ecx, esi
call fcn.004017e0
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
mov dword [esi], 0x4223f4
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [esp + 0x134], 0x12
push ecx
push ebx
lea ecx, [esi + 0x20]
call fcn.00401500
mov edi, dword [esp + 0x20]
mov byte [esi + 0x2c], 0
jmp 0x4066ec
xor esi, esi
push esi
mov ecx, edi
mov byte [esp + 0x138], 1
call fcn.00401920
push 0x50
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov byte [esp + 0x134], 0x13
je 0x406726
push str.UPDATELIST
mov ecx, eax
call fcn.00401b10
mov esi, eax
jmp 0x406728
xor esi, esi
push str.UPDATEFILE_
push str.class
mov ecx, esi
mov dword [esp + 0x34], esi
mov byte [esp + 0x13c], 1
call fcn.00401c70
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x8c]
lea edx, [esp + 0x8c]
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x1c]
push edi
push 0x426040
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
lea eax, [esp + 0x8c]
mov ecx, esi
push eax
push str.size
call fcn.00401c70
push esi
mov ecx, ebp
call fcn.00401920
test edi, edi
jle 0x406b0e
mov ecx, edi
mov dword [esp + 0x20], 0
mov dword [esp + 0x14], ecx
push 0x50
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
mov byte [esp + 0x134], 0x14
je 0x4067cc
push str.UPDATEFILE
mov ecx, eax
call fcn.00401b10
mov esi, eax
jmp 0x4067ce
xor esi, esi
mov ecx, dword [esp + 0x2c]
push esi
mov dword [esp + 0x20], esi
mov byte [esp + 0x138], 1
call fcn.00401920
push 0x50
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
mov byte [esp + 0x134], 0x15
je 0x40680e
push str.FILENAME
mov ecx, eax
call fcn.00401b10
mov ebx, eax
jmp 0x406810
xor ebx, ebx
push ebx
mov ecx, esi
mov byte [esp + 0x138], 1
call fcn.00401920
push 0x30
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov esi, eax
add esp, 4
mov dword [esp + 0x24], esi
test esi, esi
mov byte [esp + 0x134], 0x16
je 0x40688b
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
mov eax, dword [edx + 0x1ec]
mov ebp, dword [ecx + eax + 8]
test ebp, ebp
jne 0x406858
mov ebp, 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 4
mov ecx, esi
call fcn.004017e0
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
mov dword [esi], 0x4223f4
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [esp + 0x134], 0x17
push ecx
push ebp
lea ecx, [esi + 0x20]
call fcn.00401500
mov byte [esi + 0x2c], 0
jmp 0x40688d
xor esi, esi
push esi
mov ecx, ebx
mov byte [esp + 0x138], 1
call fcn.00401920
push 0x50
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
mov byte [esp + 0x134], 0x18
je 0x4068c7
push str.HASH
mov ecx, eax
call fcn.00401b10
mov ebx, eax
jmp 0x4068c9
xor ebx, ebx
mov ecx, dword [esp + 0x1c]
push ebx
mov byte [esp + 0x138], 1
call fcn.00401920
push 0x30
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov esi, eax
add esp, 4
mov dword [esp + 0x24], esi
test esi, esi
mov byte [esp + 0x134], 0x19
je 0x406946
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
mov eax, dword [edx + 0x1ec]
mov ebp, dword [ecx + eax + 0x18]
test ebp, ebp
jne 0x406913
mov ebp, 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 4
mov ecx, esi
call fcn.004017e0
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
mov dword [esi], 0x4223f4
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [esp + 0x134], 0x1a
push ecx
push ebp
lea ecx, [esi + 0x20]
call fcn.00401500
mov byte [esi + 0x2c], 0
jmp 0x406948
xor esi, esi
push esi
mov ecx, ebx
mov byte [esp + 0x138], 1
call fcn.00401920
push 0x50
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
mov byte [esp + 0x134], 0x1b
je 0x406982
push str.FILETYPE
mov ecx, eax
call fcn.00401b10
mov ebp, eax
jmp 0x406984
xor ebp, ebp
mov ecx, dword [esp + 0x1c]
push ebp
mov byte [esp + 0x138], 1
call fcn.00401920
mov edx, dword [esp + 0x28]
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x8c]
rep stosd dword es:[edi], eax
mov eax, dword [edx + 0x1ec]
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + eax + 0x24]
lea eax, [esp + 0x8c]
push edx
push 0x426040
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
push 0x30
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov esi, eax
add esp, 0x10
mov dword [esp + 0x24], esi
test esi, esi
mov byte [esp + 0x134], 0x1c
je 0x406a27
push 4
mov ecx, esi
call fcn.004017e0
lea edi, [esp + 0x8c]
or ecx, 0xffffffff
xor eax, eax
mov dword [esi], 0x4223f4
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [esp + 0x134], 0x1d
push ecx
lea ecx, [esp + 0x90]
push ecx
lea ecx, [esi + 0x20]
call fcn.00401500
mov byte [esi + 0x2c], 0
jmp 0x406a29
xor esi, esi
push esi
mov ecx, ebp
mov byte [esp + 0x138], 1
call fcn.00401920
push 0x50
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
mov byte [esp + 0x134], 0x1e
je 0x406a63
push str.FILEVER
mov ecx, eax
call fcn.00401b10
mov ebx, eax
jmp 0x406a65
xor ebx, ebx
mov ecx, dword [esp + 0x1c]
push ebx
mov byte [esp + 0x138], 1
call fcn.00401920
push 0x30
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov esi, eax
add esp, 4
mov dword [esp + 0x24], esi
test esi, esi
mov byte [esp + 0x134], 0x1f
je 0x406ae2
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
mov eax, dword [edx + 0x1ec]
mov ebp, dword [ecx + eax + 0x2c]
test ebp, ebp
jne 0x406aaf
mov ebp, 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 4
mov ecx, esi
call fcn.004017e0
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
mov dword [esi], 0x4223f4
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [esp + 0x134], 0x20
push ecx
push ebp
lea ecx, [esi + 0x20]
call fcn.00401500
mov byte [esi + 0x2c], 0
jmp 0x406ae4
xor esi, esi
push esi
mov ecx, ebx
mov byte [esp + 0x138], 1
call fcn.00401920
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
add ecx, 0x38
dec eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], eax
jne 0x4067a2
mov ecx, dword [esp + 0x18]
push str.requesttest.xml
call fcn.00402180
push 0x426068
push str.requesttest.xml
call dword [sym.imp.MSVCRT.dll_fopen]
mov ebp, eax
xor esi, esi
add esp, 8
cmp ebp, esi
jne 0x406b86
mov eax, dword [esp + 0x34]
cmp eax, esi
je 0x406b5c
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x406b53
cmp al, 0xff
je 0x406b53
dec al
mov byte [ecx], al
jmp 0x406b5c
push ecx
call fcn.0041f590
add esp, 4
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
lea ecx, [esp + 0xac]
mov dword [esp + 0x134], 0xffffffff
call fcn.0040c420
xor al, al
jmp 0x406d00
push 2
push 0
push ebp
call dword [sym.imp.MSVCRT.dll_fseek]
push ebp
call dword [sym.imp.MSVCRT.dll_ftell]
mov esi, eax
lea edi, [esi + 1]
push edi
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov ecx, edi
mov ebx, eax
mov edx, ecx
xor eax, eax
mov edi, ebx
push 0
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
push 0
and ecx, 3
push ebp
rep stosb byte es:[edi], al
mov dword [esp + 0x38], ebx
call dword [sym.imp.MSVCRT.dll_fseek]
add esp, 0x20
xor edi, edi
test esi, esi
jle 0x406bea
push ebp
push esi
lea eax, [edi + ebx]
push 1
push eax
call dword [sym.imp.MSVCRT.dll_fread]
sub esi, eax
add esp, 0x10
add edi, eax
test esi, esi
jg 0x406bd1
push ebp
call dword [sym.imp.MSVCRT.dll_fclose]
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x1c]
mov edi, esi
xor eax, eax
lea ebx, [ecx + 0x1c4]
or ecx, 0xffffffff
add esp, 4
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
cmp ebp, 0xfffffffd
jbe 0x406c1b
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
mov ecx, dword [ebx + 4]
xor edi, edi
cmp ecx, edi
je 0x406c43
mov al, byte [ecx - 1]
test al, al
je 0x406c43
cmp al, 0xff
je 0x406c43
cmp ebp, edi
jne 0x406c69
dec al
mov byte [ecx - 1], al
mov dword [ebx + 4], edi
mov dword [ebx + 8], edi
mov dword [ebx + 0xc], edi
jmp 0x406c9b
cmp ebp, edi
jne 0x406c53
push 1
mov ecx, ebx
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 0x406c9b
mov eax, dword [ebx + 0xc]
cmp eax, 0x1f
ja 0x406c5f
cmp eax, ebp
jae 0x406c72
push 1
mov ecx, ebx
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 ebp
mov ecx, ebx
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 edi, dword [ebx + 4]
mov esi, dword [esp + 0x18]
mov ecx, ebp
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 [ebx + 4]
mov esi, dword [esp + 0x18]
mov dword [ebx + 8], ebp
add ebp, eax
xor edi, edi
mov byte [ebp], 0
push str.requesttest.xml
call dword [sym.imp.MSVCRT.dll_remove]
add esp, 4
cmp esi, edi
je 0x406cb6
push esi
call fcn.0041f590
add esp, 4
mov eax, dword [esp + 0x34]
cmp eax, edi
je 0x406cdb
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x406cd2
cmp al, 0xff
je 0x406cd2
dec al
mov byte [ecx], al
jmp 0x406cdb
push ecx
call fcn.0041f590
add esp, 4
lea ecx, [esp + 0xac]
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x134], 0xffffffff
call fcn.0040c420
mov al, 1
mov ecx, dword [esp + 0x12c]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x128
ret