Function at 0x521c25
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x98
mov eax, dword [0x7b088c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
lea edx, [ebp - 0x50]
push ebx
push edi
mov dword [ebp - 0x78], eax
mov edi, ecx
mov ecx, dword [ebp + 8]
xor eax, eax
push edx
push eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x50], eax
call sym.txupd.exe_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const
push eax
lea eax, [ebp - 0x3c]
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 - 0x3c]
add esp, 0xc
neg ebx
sbb bl, bl
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
add bl, 1
jne 0x522286
mov eax, dword [ebp - 0x50]
lea edx, [ebp - 0x40]
xor ebx, ebx
mov dword [ebp - 0x40], ebx
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x40]
cmp dword [ebp - 0x40], 0x16
jae 0x521cb5
cmp dword [ebp - 0x40], 0x100000
ja 0x522288
mov eax, dword [ebp - 0x50]
lea edx, [ebp - 0x4c]
push esi
push edx
push dword [ebp - 0x40]
mov dword [ebp - 0x4c], ebx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x44]
test eax, eax
js 0x522222
mov eax, dword [ebp - 0x4c]
lea edx, [ebp - 0x74]
mov dword [ebp - 0x74], ebx
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebp - 0x40]
cmp dword [ebp - 0x74], eax
jne 0x522222
lea esi, [eax - 0x16]
mov dword [ebp - 0x3c], esi
cmp eax, 0x200
ja 0x521cff
push 0xa
pop eax
jmp 0x521d12
xor edx, edx
mov ecx, 0xc8
div ecx
mov ecx, 0x80000
cmp eax, ecx
cmovg eax, ecx
mov dword [ebp - 0x28], eax
lea edx, [ebp - 0x44]
sub esi, eax
mov dword [ebp - 0x44], ebx
mov eax, dword [ebp - 0x4c]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
test esi, esi
js 0x522222
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x20], ecx
add ecx, esi
mov dword [ebp - 0x28], ecx
add ecx, eax
jmp 0x521d52
cmp byte [ecx], 0x50
jne 0x521d51
cmp dword [ecx], 0x6054b50
je 0x521d7f
dec ecx
cmp ecx, dword [ebp - 0x28]
jae 0x521d44
test esi, esi
jle 0x521d68
cmp esi, eax
jg 0x521d68
mov edx, esi
mov esi, ebx
mov ecx, dword [ebp - 0x20]
jmp 0x521d3b
sub edx, eax
sub esi, eax
cmp edx, 0x4c
jbe 0x522222
test esi, esi
js 0x522222
jmp 0x521d63
test ecx, ecx
je 0x522222
movzx edx, word [ecx + 0xa]
cmp dx, word [ecx + 8]
jne 0x522222
mov ax, word [ecx + 6]
cmp ax, word [ecx + 4]
jne 0x522222
mov ecx, dword [ecx + 0x10]
mov eax, edx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x28], ebx
test eax, eax
je 0x521f0f
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x40]
lea esi, [ecx + eax]
lea eax, [ecx + 0x2e]
cmp edx, eax
jb 0x522217
movzx eax, word [esi + 0x1e]
movzx ecx, word [esi + 0x20]
add ecx, eax
movzx eax, word [esi + 0x1c]
add ecx, 0x2e
add eax, ecx
mov ecx, dword [ebp - 0x38]
add ecx, eax
mov dword [ebp - 0x38], ecx
cmp edx, ecx
jb 0x522217
mov ecx, dword [esi + 0x2a]
mov dword [ebp - 0x30], ecx
lea eax, [ecx + 0x1e]
cmp edx, eax
jb 0x522217
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x20]
movzx ecx, word [ecx + eax + 0x1c]
mov eax, dword [ebp - 0x30]
add ecx, dword [esi + 0x14]
movzx eax, word [eax + edx + 0x1a]
mov edx, dword [ebp - 0x40]
add eax, 0x1e
add ecx, eax
mov dword [ebp - 0x24], ecx
cmp edx, dword [esi + 0x14]
jb 0x522217
mov eax, dword [ebp - 0x30]
cmp edx, eax
jb 0x522217
cmp edx, ecx
jb 0x522217
add eax, ecx
cmp edx, eax
jb 0x522217
lea ecx, [ebp - 0x6c]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::constructor_void_
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x20]
movzx eax, word [ecx + edx + 0x1a]
push eax
lea eax, [edx + 0x1e]
add eax, ecx
lea ecx, [ebp - 0x3c]
push eax
push dword [ebp - 0x7c]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::constructor_struct_tagGBK__char_const___int_
push eax
lea ecx, [ebp - 0x6c]
call fcn.0051b603
lea ecx, [ebp - 0x3c]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
mov eax, dword [esi + 0x2a]
sub eax, dword [esi + 0x14]
add eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x68], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x64], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x60], eax
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x30]
mov ax, word [eax + ecx + 6]
mov word [ebp - 0x58], ax
mov ax, word [esi + 0xa]
mov word [ebp - 0x56], ax
mov ecx, dword [esi + 0x26]
mov eax, dword [ebp - 0x54]
shr ecx, 4
and eax, 0xfffffff8
and ecx, 1
or ecx, eax
mov dword [ebp - 0x54], ecx
test cl, 1
jne 0x521eed
lea eax, [ebp - 0x6c]
push eax
lea ecx, [ebp - 0x98]
call fcn.00522e88
lea ecx, [ebp - 0x6c]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
cmp eax, dword [ebp - 0x34]
jge 0x521f0f
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x20], eax
jmp 0x521dce
lea eax, [ebp - 0x98]
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 - 0x28], ebx
mov dword [ebp - 0x7c], ecx
test eax, eax
je 0x52220e
mov ecx, ebx
mov dword [ebp - 0x3c], ebx
mov eax, dword [esi]
add eax, ecx
lea ecx, [ebp - 0x6c]
push eax
call fcn.0051e1fd
cmp word [ebp - 0x56], 0
je 0x521f5d
cmp word [ebp - 0x56], 8
jne 0x52227c
lea eax, [ebp - 0x6c]
push eax
lea ecx, [ebp - 0x34]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::constructor_class_CTXStringW_const__
lea ecx, [ebp - 0x34]
call sym.txupd.exe_public:_int___thiscall_CTXStringW::GetLength_void_const
test eax, eax
jle 0x521f9c
or dword [ebp - 0x48], 1
lea eax, [ebp - 0x80]
push 0x70229c
push 1
push eax
lea ecx, [ebp - 0x34]
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 - 0x29], 1
pop ecx
pop ecx
test al, al
jne 0x521f9f
mov byte [ebp - 0x29], bl
mov eax, dword [ebp - 0x48]
test al, 1
je 0x521fb4
and eax, 0xfffffffe
lea ecx, [ebp - 0x80]
mov dword [ebp - 0x48], eax
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
cmp byte [ebp - 0x29], 0
je 0x52202b
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 0x78]
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 - 0x38]
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 - 0x84]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x38]
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 0x52201e
lea ecx, [ebp - 0x38]
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 0x52222d
lea ecx, [ebp - 0x38]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
jmp 0x5221de
lea eax, [ebp - 0x30]
mov dword [ebp - 0x30], ebx
push eax
push 0x1001
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 0x78]
lea eax, [ebp - 0x8c]
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 - 0x88]
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 - 0x88]
add esp, 0xc
neg ebx
sbb bl, bl
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x8c]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
add bl, 1
jne 0x52226a
xor ebx, ebx
cmp word [ebp - 0x56], bx
jne 0x522100
mov eax, dword [ebp - 0x68]
lea ecx, [ebp - 0x24]
push dword [ebp - 0x64]
add eax, dword [ebp - 0x44]
push eax
mov dword [ebp - 0x24], ebx
call fcn.004ee909
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x70], edx
test eax, eax
jne 0x5220d8
lea eax, [ebp - 0x24]
push eax
call sym.txupd.exe_int___cdecl_Util::Data::CreateTXBuffer_struct_ITXBuffer___
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x70]
pop ecx
mov ecx, dword [edx]
push eax
push edx
call dword [ecx + 0x5c]
test eax, eax
mov eax, dword [ebp - 0x24]
js 0x522237
test eax, eax
je 0x5221d6
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x24], ebx
jmp 0x5221d6
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 0x52226c
mov eax, dword [ebp - 0x68]
lea ecx, [ebp - 0x24]
add eax, dword [ebp - 0x44]
push ecx
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x24], ebx
push ecx
push dword [ebp - 0x64]
mov ecx, edi
mov dword [ebp - 8], 0xf
push eax
mov dword [ebp - 0xc], ebx
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 0x52225d
cmp dword [ebp - 8], 0x10
lea eax, [ebp - 0x1c]
push dword [ebp - 0xc]
cmovae eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x20]
push eax
mov dword [ebp - 0x20], ebx
call fcn.004ee909
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x70], edx
test eax, eax
jne 0x522199
lea eax, [ebp - 0x20]
push eax
call sym.txupd.exe_int___cdecl_Util::Data::CreateTXBuffer_struct_ITXBuffer___
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x70]
pop ecx
mov ecx, dword [edx]
push eax
push edx
call dword [ecx + 0x5c]
push edi
test eax, eax
js 0x522247
mov eax, dword [ebp - 0x60]
cmp eax, dword [ebp - 0x24]
jne 0x522243
call fcn.00414dd0
mov eax, dword [ebp - 0x20]
pop ecx
test eax, eax
je 0x5221cb
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x20], ebx
push ebx
push 1
lea ecx, [ebp - 0x1c]
call fcn.004191aa
lea ecx, [ebp - 0x30]
call fcn.004d1188
lea ecx, [ebp - 0x34]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x6c]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
mov ecx, dword [ebp - 0x3c]
push 0x1c
pop eax
add ecx, eax
inc dword [ebp - 0x28]
mov eax, dword [esi + 4]
sub eax, dword [esi]
cdq
idiv dword [ebp - 0x7c]
mov dword [ebp - 0x3c], ecx
cmp dword [ebp - 0x28], eax
jb 0x521f3e
mov ecx, esi
call fcn.00522cb8
mov bl, 1
lea ecx, [ebp - 0x98]
call fcn.00473dca
lea ecx, [ebp - 0x4c]
call fcn.00506e10
pop esi
jmp 0x522288
lea ecx, [ebp - 0x38]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
jmp 0x522274
test eax, eax
je 0x52226c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x52226c
or dword [ebp - 0x54], 4
call fcn.00414dd0
mov eax, dword [ebp - 0x20]
pop ecx
test eax, eax
je 0x52225d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x20], ebx
push ebx
push 1
lea ecx, [ebp - 0x1c]
call fcn.004191aa
jmp 0x52226c
xor ebx, ebx
lea ecx, [ebp - 0x30]
call fcn.004d1188
lea ecx, [ebp - 0x34]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
lea ecx, [ebp - 0x6c]
call sym.txupd.exe_public:_void___thiscall_CTXStringW::destructor_void_
jmp 0x522217
xor ebx, ebx
lea ecx, [ebp - 0x50]
call fcn.004d1188
mov ecx, dword [ebp - 4]
mov al, bl
pop edi
xor ecx, ebp
pop ebx
call fcn.00682c16
mov esp, ebp
pop ebp
ret 8