Function at 0x40c660
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ecx, sym.___gxx_personality_sj0
mov ebp, esp
push edi
lea edx, [ebp - 0x24c]
mov edi, 0x51fff4
push esi
lea esi, [ebp - 0x18]
push ebx
sub esp, 0x2bc
mov ebx, 0x40cba0
mov dword [ebp - 0x234], ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x230], edi
mov dword [ebp - 0x22c], esi
mov dword [ebp - 0x254], eax
mov dword [ebp - 0x228], ebx
mov dword [ebp - 0x224], esp
mov dword [esp], edx
call sym.__Unwind_SjLj_Register
mov eax, dword [ebp - 0x254]
mov ecx, dword [eax + 0xc4]
mov dword [ebp - 0x258], ecx
cmp byte [ecx + 0xa], 0
jne 0x40c780
mov byte [ebp - 0x13e], 0
mov esi, 0x50a
xor edi, edi
mov word [ebp - 0x148], si
mov esi, dword [ebp - 0x254]
xor ecx, ecx
mov word [ebp - 0x144], di
mov eax, 3
mov edx, 0xb
mov word [ebp - 0x146], ax
lea ebx, [ebp - 0x148]
mov edi, 0xffffffff
mov dword [ebp - 0x142], ecx
mov dword [esp + 8], edx
mov eax, dword [esi + 0xc4]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [ebp - 0x248], edi
call sym._memmove
mov eax, dword [ebp - 0x144]
cmp ax, 0x21
je 0x40c8c0
cmp ax, 0x22
je 0x40c850
cmp ax, 0x41
je 0x40cac8
cmp ax, 0x42
je 0x40c878
lea eax, [ebp - 0x24c]
mov dword [esp], eax
call sym.__Unwind_SjLj_Unregister
lea esp, [ebp - 0xc]
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, 0x10
mov edx, str.7654321_Now_is_tc
lea esi, [ebp - 0x128]
mov dword [esp + 8], ecx
mov ebx, 0xffffffff
lea edi, [ebp - 0x138]
mov dword [esp + 4], edx
mov dword [esp], esi
mov esi, pe_nt_image_headers32
mov dword [ebp - 0x248], ebx
lea ebx, [ebp - 0x138]
call sym._memmove
cld
xor eax, eax
mov ecx, 4
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x254]
mov edx, 0x10
lea ecx, [ebp - 0x138]
mov dword [esp + 8], edx
lea edi, [ebp - 0x118]
mov dword [esp], ecx
add eax, 0x44
mov dword [esp + 4], eax
call sym._strncpy
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebx
call sym._AES_set_decrypt_key
xor edx, edx
lea eax, [ebp - 0x128]
lea ecx, [ebp - 0x118]
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
mov esi, dword [ebp - 0x258]
mov edi, dword [esi + 6]
mov ebx, esi
add ebx, 0xb
and edi, 0xfffffff0
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp], ebx
call sym._AES_cbc_encrypt
mov edx, dword [ebp - 0x258]
mov byte [edx + 0xa], 0
jmp 0x40c6cf
mov edx, dword [ebp - 0x254]
lea eax, [ebp - 0x24c]
mov dword [edx + 4], 0
mov dword [esp], eax
call sym.__Unwind_SjLj_Unregister
lea esp, [ebp - 0xc]
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, dword [ebp - 0x254]
mov eax, dword [ebx + 0x10]
mov dword [ebx + 0x14], 0
mov dword [esp], eax
mov esi, 0xffffffff
mov dword [ebp - 0x248], esi
call sub.KERNEL32.dll_SetEvent
sub esp, 4
lea eax, [ebp - 0x24c]
mov dword [esp], eax
call sym.__Unwind_SjLj_Unregister
lea esp, [ebp - 0xc]
mov eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
lea esi, [ebp - 0x250]
mov dword [esp], esi
call sym._time
lea eax, [ebp - 0x250]
mov dword [esp], eax
call sym._localtime
mov ebx, dword [eax]
mov dword [ebp - 0x178], ebx
mov edx, dword [eax + 4]
mov dword [ebp - 0x174], edx
mov edi, dword [eax + 8]
mov dword [ebp - 0x170], edi
mov edi, dword [eax + 0xc]
mov dword [ebp - 0x16c], edi
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x168], edx
mov ebx, dword [eax + 0x14]
mov dword [ebp - 0x164], ebx
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x160], ecx
mov esi, dword [eax + 0x1c]
lea ecx, [edx + edx*4]
mov dword [ebp - 0x15c], esi
mov eax, dword [eax + 0x20]
imul esi, ebx, 0x2710
mov ebx, 0x3e
mov dword [ebp - 0x158], eax
lea eax, [ecx + ecx*4]
lea edx, [esi + eax*4]
mov esi, dword [ebp - 0x254]
lea ecx, [edx + edi + 0x121eb24]
lea edi, [ebp - 0x1b8]
mov dword [ebp - 0x25c], ecx
mov dword [esp + 8], ebx
mov eax, dword [esi + 0xc4]
mov dword [esp], edi
add eax, 0xb
mov dword [esp + 4], eax
call sym._memmove
mov ebx, dword [ebp - 0x17e]
mov esi, dword [ebp - 0x25c]
mov eax, dword [ebp - 0x254]
mov ecx, ebx
shr ebx, 1
and ecx, 1
mov byte [0x55e912], cl
mov ecx, dword [ebp - 0x254]
mov edx, ebx
mov dword [eax + 0x10c], esi
and edx, 1
mov edi, dword [ebp - 0x182]
mov byte [0x55e911], dl
shr ebx, 1
mov edx, ecx
mov dword [ecx + 0x104], edi
add edx, 0x9c
and ebx, 1
mov byte [0x55e910], bl
mov dword [ebp - 0x1c8], edx
mov dword [esp], edx
call sub.KERNEL32.dll_EnterCriticalSection
mov eax, dword [ebp - 0x254]
sub esp, 4
mov ebx, dword [ebp - 0x25c]
cmp dword [eax + 0x10c], ebx
je 0x40c9ff
mov dword [esp], eax
mov ecx, 0xe
mov dword [ebp - 0x248], ecx
call method.c_AuthThread.eraseUserIndex__
mov edi, dword [ebp - 0x142]
mov eax, 0xb21642c9
sub edi, 0x3e
mul edi
shr edx, 4
mov dword [ebp - 0x264], edx
mov edx, dword [ebp - 0x182]
cmp edx, dword [ebp - 0x264]
jge 0x40ca2c
mov dword [ebp - 0x264], edx
mov ecx, dword [ebp - 0x254]
xor esi, esi
mov ebx, dword [ebp - 0x264]
mov dword [ebp - 0x268], esi
mov edx, dword [ecx + 0xc4]
add edx, 0x49
cmp dword [ebp - 0x268], ebx
mov dword [ebp - 0x260], edx
jge 0x40ca9a
mov eax, dword [ebp - 0x254]
mov edi, dword [ebp - 0x182]
add eax, 0xec
cmp dword [eax + 0x14], edi
mov dword [ebp - 0x26c], eax
jae 0x40ca9a
mov eax, dword [ebp - 0x260]
cmp byte [eax + 0xa], 0
jne 0x40cadd
inc dword [ebp - 0x268]
mov esi, dword [ebp - 0x264]
add dword [ebp - 0x260], 0x17
cmp dword [ebp - 0x268], esi
jl 0x40ca57
mov eax, dword [ebp - 0x1c8]
mov esi, 0xffffffff
mov dword [esp], eax
mov dword [ebp - 0x248], esi
call sub.KERNEL32.dll_LeaveCriticalSection
mov ebx, dword [ebp - 0x254]
sub esp, 4
mov dword [ebx + 4], 1
jmp 0x40c75f
mov edi, dword [ebp - 0x254]
mov eax, dword [edi + 0x10]
mov dword [edi + 0x14], 1
jmp 0x40c888
add eax, 0xa
mov ebx, 0xd
mov dword [esp], eax
mov dword [ebp - 0x248], ebx
call sym._strupr
mov dword [esp + 4], eax
lea edx, [ebp - 0x1e8]
lea esi, [ebp - 0x1d8]
mov dword [esp + 8], edx
mov dword [esp], esi
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const_
lea eax, [ebp - 0x1d8]
mov dword [esp + 4], eax
mov edi, dword [ebp - 0x26c]
mov dword [esp], edi
call method.std::_Rb_tree_std::string__std::pair_std::string_const__DC_USERMAC___std::_Select1st_std::pair_std::string_const__DC_USERMAC_____std::less_std::string___std::allocator_std::pair_std::string_const__DC_USERMAC_____.find_std::string_const_
mov ecx, dword [ebp - 0x254]
add ecx, 0xf0
cmp eax, ecx
je 0x40cd0f
mov eax, dword [ebp - 0x1d8]
lea esi, [eax - 0xc]
cmp esi, 0x5315b0
mov dword [ebp - 0x2a4], esi
je 0x40ca7f
sub eax, 4
mov edx, 0xffffffff
mov dword [esp], eax
mov eax, 1
mov dword [esp + 4], edx
mov dword [ebp - 0x248], eax
call method.__gnu_cxx.__exchange_and_add_int_volatile__int_
test eax, eax
jg 0x40ca7f
lea edi, [ebp - 0x1e8]
mov dword [esp + 4], edi
mov ecx, dword [ebp - 0x2a4]
mov dword [esp], ecx
call method.std::string::_Rep._M_destroy_std::allocator_char__const_
jmp 0x40ca7f
mov dword [esp], 0x1c
mov ebx, 0xc
mov dword [ebp - 0x248], ebx
call sym.operator_new_unsigned_int_
mov dword [ebp - 0x274], eax
mov edx, 0x17
mov dword [esp + 8], edx
mov esi, dword [ebp - 0x260]
mov dword [esp], eax
mov dword [esp + 4], esi
call sym._memmove
mov eax, dword [ebp - 0x274]
lea edi, [ebp - 0x1d8]
lea ecx, [ebp - 0x218]
mov dword [eax + 0x18], 0
mov dword [esp + 4], edi
mov dword [esp], ecx
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_std::string_const_
lea edx, [ebp - 0x218]
mov ebx, 0xb
lea esi, [ebp - 0x208]
mov dword [esp + 4], edx
mov dword [esp], esi
mov dword [ebp - 0x248], ebx
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_std::string_const_
mov ebx, dword [ebp - 0x274]
lea eax, [ebp - 0x208]
mov ecx, 0xa
lea edi, [ebp - 0x1f8]
mov dword [ebp - 0x204], ebx
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [ebp - 0x248], ecx
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_std::string_const_
mov edi, dword [ebp - 0x204]
lea ecx, [ebp - 0x1f8]
mov esi, 9
mov dword [ebp - 0x1f4], edi
mov dword [esp + 4], ecx
mov edx, dword [ebp - 0x26c]
mov dword [esp], edx
mov dword [ebp - 0x248], esi
call method.std::_Rb_tree_std::string__std::pair_std::string_const__DC_USERMAC___std::_Select1st_std::pair_std::string_const__DC_USERMAC_____std::less_std::string___std::allocator_std::pair_std::string_const__DC_USERMAC_____.insert_unique_std::pair_std::str
mov eax, dword [ebp - 0x1f8]
lea esi, [eax - 0xc]
cmp esi, 0x5315b0
mov dword [ebp - 0x280], esi
jne 0x40cfdc
mov eax, dword [ebp - 0x208]
lea esi, [eax - 0xc]
cmp esi, 0x5315b0
mov dword [ebp - 0x28c], esi
jne 0x40cf98
mov eax, dword [ebp - 0x218]
lea esi, [eax - 0xc]
cmp esi, 0x5315b0
mov dword [ebp - 0x298], esi
je 0x40cb3b
sub eax, 4
mov edx, 0xffffffff
mov dword [esp], eax
mov eax, 3
mov dword [esp + 4], edx
mov dword [ebp - 0x248], eax
call method.__gnu_cxx.__exchange_and_add_int_volatile__int_
test eax, eax
jg 0x40cb3b
lea edi, [ebp - 0x1e8]
mov dword [esp + 4], edi
mov ecx, dword [ebp - 0x298]
mov dword [esp], ecx
call method.std::string::_Rep._M_destroy_std::allocator_char__const_
jmp 0x40cb3b
sub eax, 4
mov edx, 0xffffffff
mov dword [esp], eax
mov eax, 5
mov dword [esp + 4], edx
mov dword [ebp - 0x248], eax
call method.__gnu_cxx.__exchange_and_add_int_volatile__int_
test eax, eax
jg 0x40ce23
lea edi, [ebp - 0x1e8]
mov dword [esp + 4], edi
mov ecx, dword [ebp - 0x28c]
mov dword [esp], ecx
call method.std::string::_Rep._M_destroy_std::allocator_char__const_
jmp 0x40ce23
sub eax, 4
mov edx, 0xffffffff
mov dword [esp], eax
mov eax, 7
mov dword [esp + 4], edx
mov dword [ebp - 0x248], eax
call method.__gnu_cxx.__exchange_and_add_int_volatile__int_
test eax, eax
jg 0x40ce08
lea edi, [ebp - 0x1e8]
mov dword [esp + 4], edi
mov ecx, dword [ebp - 0x280]
mov dword [esp], ecx
call method.std::string::_Rep._M_destroy_std::allocator_char__const_
jmp 0x40ce08