Function at 0x401b56
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x48c
mov eax, dword [ebp + 8]
mov dword [ebp - 0x47c], ecx
lea ecx, [ebp - 0x46c]
mov dword [esp], eax
call method.string.string_string_const_
mov eax, dword [ebp - 0x46c]
push ebx
mov edx, dword [eax]
cmp byte [eax + edx + 3], 0x5c
jne 0x401b94
lea edi, [ebp - 0x218]
jmp 0x401c63
lea ecx, [ebp - 0x46c]
mov dword [esp], 0x5c
call method.string.push_back_char_
push ecx
jmp 0x401b89
mov eax, dword [ebp - 0x384]
lea ebx, [ebp - 0x418]
mov edx, dword [ebp - 0x380]
mov dword [ebp - 0x384], 0x20202020
mov dword [ebp - 0x380], 0x20202020
mov dword [ebp - 0x454], eax
xor eax, eax
mov dword [ebp - 0x450], edx
mov dword [ebp - 0x44c], 0x20202020
mov dword [ebp - 0x448], 0x20202020
movsx edx, byte [ebx]
inc ebx
add eax, edx
cmp ebx, edi
jne 0x401bf1
lea esi, [ebp - 0x44c]
mov dword [esp + 8], eax
mov dword [esp + 4], str._06o
mov dword [esp], esi
call sub.msvcrt.dll_sprintf
lea eax, [ebp - 0x454]
mov dword [esp + 8], 6
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x401cdb
mov eax, dword [ebp - 0x454]
mov edx, dword [ebp - 0x450]
mov dword [ebp - 0x384], eax
lea eax, [ebp - 0x418]
mov dword [ebp - 0x380], edx
cmp byte [eax], 0
jne 0x40226f
inc eax
cmp eax, edi
jne 0x401c55
mov ecx, dword [ebp - 0x47c]
lea eax, [ebp - 0x418]
mov dword [esp + 4], 0x200
mov dword [esp], eax
call fcn.00401842
test eax, eax
mov ebx, eax
push edx
push edx
jne 0x401c8e
mov bl, 1
jmp 0x4022b1
cmp eax, 0x200
je 0x401ba9
mov eax, dword [ebp - 0x47c]
mov ecx, edi
mov dword [esp], eax
call fcn.00401812
push eax
mov dword [esp + 4], edi
mov dword [esp], sym.updater.exe_cout
call sym.updater.exe_operator___ostream__string_const_
mov dword [esp + 4], str.cannot_read_full_tar_header:
mov dword [esp], eax
call sym.updater.exe_operator___ostream__char_const_
mov dword [esp + 4], ebx
mov dword [esp], eax
call sym.updater.exe_operator___ostream__int_
jmp 0x4022a0
mov al, byte [ebp - 0x37c]
cmp al, 0x30
jne 0x4021d5
lea eax, [ebp - 0x468]
mov dword [esp + 8], eax
lea eax, [ebp - 0x39c]
mov dword [esp + 4], str._011o
mov dword [esp], eax
call sub.msvcrt.dll_sscanf
dec eax
jne 0x4022af
lea eax, [ebp - 0x418]
lea esi, [ebp - 0x464]
mov dword [esp], eax
mov ecx, esi
call method.string.string_char_const_
mov ecx, edi
lea ebx, [ebp - 0x444]
push edx
mov dword [esp], 0x413054
call method.string.string_char_const_
push ecx
mov ecx, ebx
mov dword [esp], 0x4130be
call method.string.string_char_const_
mov ecx, esi
push eax
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.00403dd2
mov ecx, ebx
push eax
push eax
call method.string.freeptr__
mov ecx, edi
call method.string.freeptr__
lea eax, [ebp - 0x46c]
mov dword [esp], eax
lea ecx, [ebp - 0x460]
call method.string.string_string_const_
lea ecx, [ebp - 0x460]
push eax
mov dword [esp], esi
lea esi, [ebp - 0x45c]
call fcn.0040362c
push eax
mov eax, dword [ebp - 0x460]
cmp dword [eax], 0
jne 0x401daa
mov ecx, esi
call method.string.string__
jmp 0x401e39
lea eax, [ebp - 0x460]
mov ecx, edi
mov dword [esp], eax
call method.string.string_string_const_
mov edx, dword [ebp - 0x218]
push eax
mov eax, dword [edx]
dec eax
cmp byte [edx + eax + 4], 0x5c
jne 0x401ddf
mov dword [esp], eax
mov ecx, edi
mov dword [esp + 4], 0
call method.string.resize_unsigned_int__char_
push eax
push eax
mov eax, dword [ebp - 0x218]
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], 0x5c
mov edx, dword [eax]
add eax, 4
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040300f
cmp eax, 0xffffffff
jne 0x401e18
lea ecx, [ebp - 0x45c]
call method.string.string__
jmp 0x401e32
inc eax
mov ecx, esi
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], edi
call method.string.substr_unsigned_int__unsigned_int__const
sub esp, 0xc
mov ecx, edi
call method.string.freeptr__
mov eax, esi
call fcn.00401758
test al, al
jne 0x401f92
mov dword [esp], esi
mov ecx, edi
mov dword [esp + 4], 0x5c
call fcn.00404108
mov ecx, ebx
lea ebx, [ebp - 0x444]
push eax
push eax
call method.string.string__
mov eax, dword [ebp - 0x214]
mov esi, dword [ebp - 0x218]
mov dword [ebp - 0x480], eax
cmp esi, dword [ebp - 0x480]
je 0x401f48
mov ecx, ebx
mov dword [esp], esi
call fcn.0040362c
push eax
mov eax, ebx
call fcn.00401758
test al, al
mov eax, ebx
jne 0x401edc
call fcn.004017c9
test al, al
jne 0x401f31
mov dword [esp + 4], str.filetool:_createDirectoryParents_
mov dword [esp], sym.updater.exe_cout
call sym.updater.exe_operator___ostream__char_const_
lea edx, [ebp - 0x45c]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym.updater.exe_operator___ostream__string_const_
mov dword [esp + 4], str._:_could_not_create_directory:
jmp 0x401f13
call fcn.0040178a
test al, al
jne 0x401f31
mov dword [esp + 4], str.filetool:_createDirectoryParents_
mov dword [esp], sym.updater.exe_cout
call sym.updater.exe_operator___ostream__char_const_
lea edx, [ebp - 0x45c]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym.updater.exe_operator___ostream__string_const_
mov dword [esp + 4], str._:_not_a_directory:
mov dword [esp], eax
call sym.updater.exe_operator___ostream__char_const_
mov dword [esp + 4], ebx
mov dword [esp], eax
call sym.updater.exe_operator___ostream__string_const_
mov dword [esp], eax
call sym.updater.exe_endl_ostream_
jmp 0x401f48
mov dword [esp], 0x5c
mov ecx, ebx
add esi, 4
call method.string.push_back_char_
push eax
jmp 0x401e7b
lea ecx, [ebp - 0x444]
call method.string.freeptr__
mov eax, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x218]
mov dword [ebp - 0x480], eax
mov esi, ebx
cmp esi, dword [ebp - 0x480]
je 0x401f7b
mov ecx, esi
add esi, 4
call method.string.freeptr__
jmp 0x401f67
mov ecx, edi
mov dword [esp + 4], esi
mov dword [esp], ebx
call method.vector_base.erase_raw_char__char_
mov ecx, edi
push eax
push eax
call method.vector_base.vector_base__
mov eax, dword [ebp - 0x460]
lea ecx, [ebp - 0x444]
mov dword [esp + 4], 0x24
add eax, 4
mov dword [esp], eax
call fcn.00404aee
test byte [ebp - 0x428], 5
push esi
push esi
je 0x401fe7
mov eax, dword [ebp - 0x47c]
mov ecx, edi
mov dword [esp], eax
call fcn.00401812
push ebx
mov dword [esp + 4], edi
mov dword [esp], sym.updater.exe_cout
call sym.updater.exe_operator___ostream__string_const_
mov dword [esp + 4], str.ostream_failed:
jmp 0x40201a
mov ebx, dword [ebp - 0x424]
test ebx, ebx
jne 0x402043
mov eax, dword [ebp - 0x47c]
mov ecx, edi
mov dword [esp], eax
call fcn.00401812
push ecx
mov dword [esp + 4], edi
mov dword [esp], sym.updater.exe_cout
call sym.updater.exe_operator___ostream__string_const_
mov dword [esp + 4], str.streambuf_failed:
mov dword [esp], eax
call sym.updater.exe_operator___ostream__char_const_
lea edx, [ebp - 0x460]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym.updater.exe_operator___ostream__string_const_
mov dword [esp], eax
call sym.updater.exe_endl_ostream_
mov ecx, edi
jmp 0x40210b
mov esi, dword [ebp - 0x468]
mov dword [ebp - 0x484], 0
mov eax, esi
and esi, 0x1ff
shr eax, 9
cmp esi, 1
mov dword [ebp - 0x480], eax
sbb dword [ebp - 0x480], 0xffffffff
mov eax, dword [ebp - 0x480]
dec eax
mov dword [ebp - 0x488], eax
jmp 0x402083
inc dword [ebp - 0x484]
mov eax, dword [ebp - 0x480]
cmp dword [ebp - 0x484], eax
je 0x4021a9
mov ecx, dword [ebp - 0x47c]
mov dword [esp + 4], 0x200
mov dword [esp], edi
call fcn.00401842
cmp eax, 0x200
push edx
push edx
je 0x40213c
mov eax, dword [ebp - 0x47c]
lea ebx, [ebp - 0x458]
mov ecx, ebx
mov dword [esp], eax
call fcn.00401812
push eax
mov dword [esp + 4], ebx
mov dword [esp], sym.updater.exe_cout
call sym.updater.exe_operator___ostream__string_const_
mov dword [esp + 4], str.read_failed:
mov dword [esp], eax
call sym.updater.exe_operator___ostream__char_const_
lea edx, [ebp - 0x460]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym.updater.exe_operator___ostream__string_const_
mov dword [esp], eax
call sym.updater.exe_endl_ostream_
mov ecx, ebx
call method.string.freeptr__
lea ecx, [ebp - 0x444]
call fcn.00404c5a
lea ecx, [ebp - 0x45c]
call method.string.freeptr__
lea ecx, [ebp - 0x460]
call method.string.freeptr__
lea ecx, [ebp - 0x464]
jmp 0x4022aa
test esi, esi
mov eax, dword [ebx]
je 0x402156
mov edx, dword [ebp - 0x488]
cmp dword [ebp - 0x484], edx
jne 0x402156
mov dword [esp + 4], esi
jmp 0x40215e
mov dword [esp + 4], 0x200
mov dword [esp], edi
mov ecx, ebx
call dword [eax + 0x2c]
test byte [ebp - 0x428], 5
push eax
push eax
je 0x40207d
mov eax, dword [ebp - 0x47c]
lea ebx, [ebp - 0x458]
mov ecx, ebx
mov dword [esp], eax
call fcn.00401812
push ecx
mov dword [esp + 4], ebx
mov dword [esp], sym.updater.exe_cout
call sym.updater.exe_operator___ostream__string_const_
mov dword [esp + 4], str.ostream_data_failed:
jmp 0x4020e7
lea ecx, [ebp - 0x444]
call fcn.00404c5a
lea ecx, [ebp - 0x45c]
call method.string.freeptr__
lea ecx, [ebp - 0x460]
call method.string.freeptr__
lea ecx, [ebp - 0x464]
jmp 0x402265
cmp al, 0x35
jne 0x401c63
lea esi, [ebp - 0x444]
lea ecx, [ebp - 0x418]
mov eax, esi
lea edx, [ebp - 0x46c]
call fcn.00401362
mov eax, dword [ebp - 0x444]
mov edx, dword [eax]
lea ecx, [edx - 1]
mov dword [eax], ecx
mov byte [eax + edx + 4], 0
mov eax, esi
call fcn.004017c9
test al, al
jne 0x402263
mov eax, dword [ebp - 0x47c]
mov ecx, ebx
mov dword [esp], eax
call fcn.00401812
push edx
mov dword [esp + 4], ebx
mov dword [esp], sym.updater.exe_cout
call sym.updater.exe_operator___ostream__string_const_
mov dword [esp + 4], str.create_dir_failed:
mov dword [esp], eax
call sym.updater.exe_operator___ostream__char_const_
mov dword [esp + 4], esi
mov dword [esp], eax
call sym.updater.exe_operator___ostream__string_const_
mov dword [esp], eax
call sym.updater.exe_endl_ostream_
mov ecx, ebx
call method.string.freeptr__
mov ecx, esi
jmp 0x4022aa
mov ecx, esi
call method.string.freeptr__
jmp 0x401c63
mov eax, dword [ebp - 0x47c]
mov ecx, edi
mov dword [esp], eax
call fcn.00401812
push eax
mov dword [esp + 4], edi
mov dword [esp], sym.updater.exe_cout
call sym.updater.exe_operator___ostream__string_const_
mov dword [esp + 4], str.bad_header_csum
mov dword [esp], eax
call sym.updater.exe_operator___ostream__char_const_
mov dword [esp], eax
call sym.updater.exe_endl_ostream_
mov ecx, edi
call method.string.freeptr__
xor ebx, ebx
lea ecx, [ebp - 0x46c]
call method.string.freeptr__
lea esp, [ebp - 0xc]
mov al, bl
pop ebx
pop esi
pop edi
pop ebp
ret 4