Function at 0x521448
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa8
mov eax, dword [0x7b088c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
mov dword [ebp - 0x7c], eax
xor eax, eax
lea ecx, [ebp - 0x20]
push ecx
push eax
mov ecx, esi
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x20], eax
call sym.txupd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
lea eax, [ebp - 0x50]
push 0x70f3a4
push eax
call sym.txupd.exe_class_CTXStringW___cdecl_FS::CombineQNC_wchar_t_const___wchar_t_const__
add esp, 0xc
mov ecx, eax
call sym.txupd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
call sym.txupd.exe_int___cdecl_FS::CreateFileW_wchar_t_const___unsigned_long_int__struct_ITXFile___
mov ebx, eax
lea ecx, [ebp - 0x50]
add esp, 0xc
neg ebx
sbb bl, bl
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
add bl, 1
jne 0x521c06
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x44]
xor ebx, ebx
mov dword [ebp - 0x44], ebx
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x40]
mov eax, dword [ebp - 0x44]
cmp eax, 0x16
jb 0x521c08
mov ecx, 0x100000
cmp eax, ecx
jae 0x5214ef
push dword [ebp - 0x7c]
mov ecx, edi
push esi
call sym.txupd.exe_public:_bool___thiscall_CUnZipFile::UnZipFileEx_class_CTXStringW_const___class_CTXStringW_const__
mov bl, al
jmp 0x521c08
lea ecx, [eax - 0x16]
mov dword [ebp - 0x24], ecx
cmp eax, 0x200
ja 0x521501
push 0xa
pop eax
jmp 0x521514
xor edx, edx
mov esi, 0xc8
div esi
mov edx, 0x80000
cmp eax, edx
cmovg eax, edx
mov esi, ecx
mov dword [ebp - 0x40], eax
sub esi, eax
mov dword [ebp - 0x54], ebx
js 0x521b96
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x98]
push edx
push ebx
push esi
mov ecx, dword [eax]
push eax
call dword [ecx + 0x38]
test eax, eax
js 0x521b96
cmp dword [ebp - 0x54], ebx
je 0x52154f
lea eax, [ebp - 0x54]
push ebx
push eax
call fcn.004e58b6
pop ecx
pop ecx
mov eax, dword [ebp - 0x20]
lea ecx, [ebp - 0x54]
push ecx
mov ecx, dword [ebp - 0x44]
sub ecx, esi
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x44]
test eax, eax
js 0x521b96
mov eax, dword [ebp - 0x54]
lea edx, [ebp - 0x80]
mov dword [ebp - 0x80], ebx
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x40]
lea ecx, [edx + eax]
jmp 0x521593
cmp byte [ecx], 0x50
jne 0x521592
cmp dword [ecx], 0x6054b50
je 0x5215c9
dec ecx
cmp ecx, edx
jae 0x521585
test esi, esi
jle 0x5215a9
cmp esi, eax
jg 0x5215a9
mov dword [ebp - 0x24], esi
mov esi, ebx
jmp 0x521524
mov ecx, dword [ebp - 0x24]
sub esi, eax
sub ecx, eax
mov dword [ebp - 0x24], ecx
cmp ecx, 0x4c
jbe 0x521b96
test esi, esi
jns 0x521524
jmp 0x521b96
test ecx, ecx
je 0x521b96
movzx edx, word [ecx + 0xa]
cmp dx, word [ecx + 8]
jne 0x521b96
mov ax, word [ecx + 6]
cmp ax, word [ecx + 4]
jne 0x521b96
mov eax, edx
mov dword [ebp - 0xa4], ebx
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x24], edx
mov dword [ebp - 0xa0], ebx
mov dword [ebp - 0x9c], ebx
mov dword [ebp - 0x2c], ebx
test eax, eax
je 0x5217d1
mov eax, dword [ebp - 0x20]
lea esi, [ebp - 0x88]
push esi
push ebx
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x38]
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x34]
push edx
mov dword [ebp - 0x34], ebx
push 0x2e
mov ecx, dword [eax]
push eax
call dword [ecx + 0x44]
test eax, eax
js 0x521912
mov eax, dword [ebp - 0x34]
lea edx, [ebp - 0x40]
mov dword [ebp - 0x40], ebx
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
mov esi, dword [ebp - 0x40]
test esi, esi
je 0x521912
mov edx, dword [ebp - 0x24]
lea eax, [edx + 0x2e]
cmp dword [ebp - 0x44], eax
jb 0x521912
movzx eax, word [esi + 0x1e]
movzx ecx, word [esi + 0x20]
add ecx, eax
movzx eax, word [esi + 0x1c]
add eax, 0x2e
add eax, ecx
add edx, eax
mov dword [ebp - 0x24], edx
cmp dword [ebp - 0x44], edx
jb 0x521912
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x84]
push edx
push ebx
push dword [esi + 0x2a]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x38]
mov eax, dword [ebp - 0x20]
lea ecx, [ebp - 0x38]
push ecx
mov dword [ebp - 0x38], ebx
movzx ecx, word [esi + 0x1c]
mov edx, dword [eax]
add ecx, 0x1e
push ecx
push eax
call dword [edx + 0x44]
test eax, eax
js 0x52190a
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x48]
mov dword [ebp - 0x48], ebx
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x52190a
movzx edx, word [eax + 0x1c]
movzx eax, word [eax + 0x1a]
add edx, dword [esi + 0x14]
add eax, 0x1e
mov ecx, dword [ebp - 0x44]
add edx, eax
mov dword [ebp - 0x4c], edx
cmp ecx, dword [esi + 0x14]
jb 0x52190a
mov eax, dword [esi + 0x2a]
cmp ecx, eax
jb 0x52190a
cmp ecx, edx
jb 0x52190a
add eax, edx
cmp ecx, eax
jb 0x52190a
lea ecx, [ebp - 0x78]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::constructor_void_
mov ecx, dword [ebp - 0x3c]
movzx eax, word [ecx + 0x1a]
push eax
lea eax, [ecx + 0x1e]
push eax
push dword [ebp - 0x98]
lea ecx, [ebp - 0x50]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::constructor_struct_tagGBK__char_const___int_
push eax
lea ecx, [ebp - 0x78]
call fcn.0051b603
lea ecx, [ebp - 0x50]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
mov eax, dword [esi + 0x2a]
sub eax, dword [esi + 0x14]
add eax, dword [ebp - 0x4c]
mov dword [ebp - 0x74], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x70], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x6c], eax
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x3c]
mov ax, word [eax + 6]
mov word [ebp - 0x64], ax
mov ax, word [esi + 0xa]
mov word [ebp - 0x62], ax
mov ecx, dword [esi + 0x26]
mov eax, dword [ebp - 0x60]
shr ecx, 4
and eax, 0xfffffff8
and ecx, 1
or ecx, eax
mov dword [ebp - 0x60], ecx
test cl, 1
jne 0x5217a6
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0xa4]
call fcn.00522e88
lea ecx, [ebp - 0x78]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x38]
call fcn.00506e10
lea ecx, [ebp - 0x34]
call fcn.00506e10
mov esi, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x24]
inc esi
mov dword [ebp - 0x2c], esi
cmp esi, dword [ebp - 0x5c]
jl 0x521615
lea eax, [ebp - 0xa4]
lea esi, [edi + 0x38]
push eax
mov ecx, esi
call fcn.00522fc9
mov eax, dword [esi + 4]
sub eax, dword [esi]
push 0x1c
pop ecx
cdq
idiv ecx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x88], ecx
test eax, eax
je 0x521b82
mov ecx, ebx
mov dword [ebp - 0x50], ebx
mov eax, dword [esi]
add eax, ecx
lea ecx, [ebp - 0x78]
push eax
call fcn.0051e1fd
cmp word [ebp - 0x62], 0
je 0x521822
cmp word [ebp - 0x62], 8
jne 0x521bfc
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x2c]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::constructor_class_CTXStringW_const__
lea ecx, [ebp - 0x2c]
call sym.txupd.exe_public:_int___thiscall_CTXStringW::GetLength_void_const
test eax, eax
jle 0x521864
or dword [ebp - 0x58], 1
lea eax, [ebp - 0x8c]
push 0x70229c
push 1
push eax
lea ecx, [ebp - 0x2c]
call sym.txupd.exe_public:_class_CTXStringW___thiscall_CTXStringW::Right_int_
push eax
call sym.txupd.exe_bool___cdecl_operator_class_CTXStringW_const___wchar_t_const__
mov byte [ebp - 0x25], 1
pop ecx
pop ecx
test al, al
jne 0x521867
mov byte [ebp - 0x25], bl
mov eax, dword [ebp - 0x58]
test al, 1
je 0x52187f
and eax, 0xfffffffe
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x58], eax
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
cmp byte [ebp - 0x25], 0
je 0x52191f
lea eax, [ebp - 0x2c]
push eax
push dword [ebp - 0x7c]
lea eax, [ebp - 0x90]
push eax
call sym.txupd.exe_class_CTXStringW___cdecl_Util::FS::CombinePath_class_CTXStringW_const___class_CTXStringW_const__
add esp, 0xc
mov ecx, eax
call sym.txupd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
lea eax, [ebp - 0x24]
push 0x70f3a4
push eax
call sym.txupd.exe_class_CTXStringW___cdecl_FS::CombineQNC_wchar_t_const___wchar_t_const__
add esp, 0xc
lea ecx, [ebp - 0x90]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x24]
call sym.txupd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
call sym.txupd.exe_int___cdecl_FS::IsDirectoryExist_wchar_t_const__
pop ecx
test eax, eax
jne 0x5218ed
lea ecx, [ebp - 0x24]
call sym.txupd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
call sym.txupd.exe_int___cdecl_FS::CreateDirectoryW_wchar_t_const__
pop ecx
test eax, eax
je 0x521ba0
lea ecx, [ebp - 0x24]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x2c]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x78]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
jmp 0x521b5f
lea ecx, [ebp - 0x38]
call fcn.00506e10
lea ecx, [ebp - 0x34]
call fcn.00506e10
jmp 0x521b8b
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x3c], ebx
push eax
push 0x1001
lea eax, [ebp - 0x2c]
push eax
push dword [ebp - 0x7c]
lea eax, [ebp - 0x84]
push eax
call sym.txupd.exe_class_CTXStringW___cdecl_Util::FS::CombinePath_class_CTXStringW_const___class_CTXStringW_const__
add esp, 0xc
mov ecx, eax
call sym.txupd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
lea eax, [ebp - 0x94]
push 0x70f3a4
push eax
call sym.txupd.exe_class_CTXStringW___cdecl_FS::CombineQNC_wchar_t_const___wchar_t_const__
add esp, 0xc
mov ecx, eax
call sym.txupd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
call sym.txupd.exe_int___cdecl_FS::CreateFileW_wchar_t_const___unsigned_long_int__struct_ITXFile___
mov ebx, eax
lea ecx, [ebp - 0x94]
add esp, 0xc
neg ebx
sbb bl, bl
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x84]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
add bl, 1
jne 0x521bea
xor ebx, ebx
cmp word [ebp - 0x62], bx
jne 0x5219f3
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x4c]
push edx
push ebx
push dword [ebp - 0x74]
mov dword [ebp - 0x4c], ebx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x38]
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x34]
push edx
push dword [ebp - 0x70]
mov dword [ebp - 0x34], ebx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x44]
cmp dword [ebp - 0x34], ebx
je 0x521baa
mov eax, dword [ebp - 0x3c]
push dword [ebp - 0x34]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x5c]
test eax, eax
js 0x521baa
lea ecx, [ebp - 0x34]
call fcn.00506e10
lea ecx, [ebp - 0x3c]
call fcn.004d1188
jmp 0x5218f5
push 0x38
push str.1.2.3
push 0xfffffffffffffff1
push edi
mov dword [edi + 0x20], ebx
mov dword [edi + 0x24], ebx
mov dword [edi + 0x28], ebx
mov dword [edi], ebx
mov dword [edi + 4], ebx
mov dword [edi + 0xc], ebx
mov dword [edi + 0x10], ebx
mov dword [edi + 0x1c], ebx
call fcn.00413450
add esp, 0x10
test eax, eax
jne 0x521bec
mov eax, dword [ebp - 0x70]
lea edx, [ebp - 0xa8]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x20]
push edx
push ebx
push dword [ebp - 0x74]
mov ecx, dword [eax]
push eax
mov dword [ebp - 0x4c], ebx
call dword [ecx + 0x38]
mov eax, dword [ebp - 0x48]
lea edx, [ebp - 0x38]
mov ecx, 0x100000
mov dword [ebp - 0x38], ebx
cmp eax, ecx
mov esi, eax
push edx
cmova esi, ecx
sub eax, esi
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x20]
push esi
push eax
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x521bde
mov dword [ebp - 0x5c], ebx
lea edx, [ebp - 0x5c]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x30]
lea eax, [ebp - 0x4c]
mov dword [ebp - 8], 0xf
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0xc], ebx
push eax
push esi
push dword [ebp - 0x5c]
mov ecx, edi
mov byte [ebp - 0x1c], bl
call sym.txupd.exe_private:_bool___thiscall_CUnZipFile::ZipBuffer_void_const___unsigned_int__class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____unsigned_int__
test al, al
je 0x521bd1
cmp dword [ebp - 8], 0x10
lea eax, [ebp - 0x1c]
push dword [ebp - 0xc]
cmovae eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x30]
push eax
mov dword [ebp - 0x30], ebx
call fcn.004ee909
mov eax, dword [ebp - 0x30]
mov esi, dword [ebp - 0x3c]
test eax, eax
jne 0x521ad7
lea eax, [ebp - 0x30]
push eax
call sym.txupd.exe_int___cdecl_Util::Data::CreateTXBuffer_struct_ITXBuffer___
mov eax, dword [ebp - 0x30]
pop ecx
mov ecx, dword [esi]
push eax
push esi
call dword [ecx + 0x5c]
test eax, eax
js 0x521bba
mov eax, dword [ebp - 0x48]
test eax, eax
mov eax, dword [ebp - 0x30]
je 0x521b15
test eax, eax
je 0x521afd
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x30], ebx
push ebx
push 1
lea ecx, [ebp - 0x1c]
call fcn.004191aa
lea ecx, [ebp - 0x38]
call fcn.00506e10
jmp 0x521a41
test eax, eax
je 0x521b22
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x30], ebx
push ebx
push 1
lea ecx, [ebp - 0x1c]
call fcn.004191aa
lea ecx, [ebp - 0x38]
call fcn.00506e10
push edi
call fcn.00414dd0
mov eax, dword [ebp - 0x6c]
pop ecx
cmp eax, dword [ebp - 0x4c]
jne 0x521bb4
lea ecx, [ebp - 0x3c]
call fcn.004d1188
lea ecx, [ebp - 0x2c]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x78]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea esi, [edi + 0x38]
mov ecx, dword [ebp - 0x50]
push 0x1c
pop eax
add ecx, eax
inc dword [ebp - 0x40]
mov eax, dword [esi + 4]
sub eax, dword [esi]
cdq
idiv dword [ebp - 0x88]
mov dword [ebp - 0x50], ecx
cmp dword [ebp - 0x40], eax
jb 0x521803
mov ecx, esi
call fcn.00522cb8
mov bl, 1
lea ecx, [ebp - 0xa4]
call fcn.00473dca
lea ecx, [ebp - 0x54]
call fcn.00506e10
jmp 0x521c08
lea ecx, [ebp - 0x24]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
jmp 0x521bf4
lea ecx, [ebp - 0x34]
call fcn.00506e10
jmp 0x521bec
or dword [ebp - 0x60], 4
jmp 0x521bec
push edi
call fcn.00414dd0
mov eax, dword [ebp - 0x30]
pop ecx
test eax, eax
je 0x521bd1
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x30], ebx
push ebx
push 1
lea ecx, [ebp - 0x1c]
call fcn.004191aa
jmp 0x521be5
push edi
call fcn.00414dd0
pop ecx
lea ecx, [ebp - 0x38]
jmp 0x521bad
xor ebx, ebx
lea ecx, [ebp - 0x3c]
call fcn.004d1188
lea ecx, [ebp - 0x2c]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x78]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
jmp 0x521b8b
xor ebx, ebx
lea ecx, [ebp - 0x20]
call fcn.004d1188
mov ecx, dword [ebp - 4]
mov al, bl
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00682c16
mov esp, ebp
pop ebp
ret 8