Function at 0x54aa60
Capabilities:
Parse url

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x572345
push eax
mov eax, 0x1168
mov dword fs:[0], esp
call fcn.00550140
push ebx
mov ebx, ecx
push ebp
push esi
lea ebp, [ebx + 0xc]
push edi
mov ecx, ebp
mov dword [esp + 0x14], ebp
call fcn.0054c770
test eax, eax
jl 0x54ae7b
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x79]
mov byte [esp + 0x78], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x1ff
xor eax, eax
lea edi, [esp + 0x179]
mov byte [esp + 0x178], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x1ff
xor eax, eax
lea edi, [esp + 0x979]
mov byte [esp + 0x978], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov esi, dword [esp + 0x1188]
mov ecx, 0xf
xor eax, eax
lea edi, [esp + 0x34]
mov edx, 0x800
rep stosd dword es:[edi], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x64], edx
lea edx, [esp + 0x34]
lea eax, [esp + 0x78]
push edx
lea ecx, [esp + 0x97c]
push 0x10000000
push esi
mov dword [esp + 0x40], 0x3c
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], 0x100
mov dword [esp + 0x6c], ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
push esi
call dword [sym.imp.WININET.dll_InternetCrackUrlA]
test eax, eax
jne 0x54ab58
mov ecx, ebp
call fcn.0054cb10
mov eax, 0x80070057
jmp 0x54ae7b
lea eax, [esp + 0x2c]
push 0x4000000
lea ecx, [esp + 0x17c]
push eax
lea edx, [esp + 0x980]
push ecx
push edx
call dword [sym.imp.SHLWAPI.dll_UrlEscapeA]
mov al, byte [esp + 0x178]
test al, al
jne 0x54ab93
mov byte [esp + 0x178], 0x2f
mov byte [esp + 0x179], 0
push 0xc
call sub.MFC42.DLL_operatornew
mov esi, eax
add esp, 4
mov dword [esp + 0x10], esi
xor edi, edi
cmp esi, edi
mov dword [esp + 0x1180], edi
je 0x54abe2
lea eax, [esp + 0x78]
mov dword [esi + 4], edi
push eax
mov dword [esi + 8], 1
call fcn.005506a7
cmp eax, edi
mov dword [esi], eax
jne 0x54abdc
lea ecx, [esp + 0x78]
test ecx, ecx
je 0x54abdc
push 0x8007000e
call fcn.005505fa
mov dword [esp + 0x10], esi
jmp 0x54abe8
mov dword [esp + 0x10], edi
mov esi, edi
cmp esi, edi
mov dword [esp + 0x1180], 0xffffffff
mov dword [esp + 0x30], esi
jne 0x54ac05
push 0x8007000e
call fcn.005505fa
cmp esi, edi
mov dword [esp + 0x1180], 1
je 0x54ac3b
cmp dword [esi + 4], edi
jne 0x54ac36
mov edx, dword [esi]
push edx
call fcn.0055071c
cmp eax, edi
mov dword [esi + 4], eax
jne 0x54ac36
cmp dword [esi], edi
je 0x54ac36
push 0x8007000e
call fcn.005505fa
mov eax, dword [esi + 4]
jmp 0x54ac3d
xor eax, eax
push eax
mov ecx, ebp
call fcn.0054c8b0
mov edi, eax
test edi, edi
jge 0x54ac89
mov ecx, ebp
call fcn.0054cb10
test esi, esi
je 0x54ae79
lea eax, [esi + 8]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x54ae79
mov eax, dword [esi]
test eax, eax
je 0x54ac79
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
test eax, eax
je 0x54ae70
jmp 0x54ae67
mov edi, dword [esp + 0x1194]
test edi, edi
je 0x54aca6
mov eax, dword [esp + 0x1198]
test eax, eax
je 0x54aca6
mov ebp, 1
jmp 0x54aca8
xor ebp, ebp
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0x4c]
push 0
push ecx
mov ecx, dword [esp + 0x1c]
push edx
call fcn.0054c920
test eax, eax
jl 0x54ae2e
mov eax, dword [esp + 0x11a0]
mov ecx, dword [esp + 0x119c]
mov edx, dword [esp + 0x1190]
push eax
mov eax, dword [esp + 0x1190]
push 0
push ecx
push edx
lea ecx, [esp + 0x188]
push eax
lea edx, [esp + 0x8c]
push ecx
push edx
mov ecx, ebx
call fcn.0054aea0
test eax, eax
jl 0x54ae2e
test ebp, ebp
je 0x54ae32
lea eax, [esp + 0x70]
mov ecx, ebx
push eax
push 0
call fcn.0054b4a0
mov ebp, eax
test ebp, ebp
jl 0x54ae36
mov ecx, dword [esp + 0x1198]
mov eax, dword [ecx]
cmp ebp, eax
jbe 0x54ad34
mov ebp, eax
test ebp, ebp
je 0x54ae21
mov edx, dword [ebx + 8]
mov ecx, dword [esp + 0x14]
push edx
push ebp
push edi
call fcn.0054ccd0
cmp eax, ebp
jne 0x54ae14
mov al, byte [esp + 0x1b]
or ecx, 0xffffffff
mov byte [esp + 0x1c], al
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov ebx, ecx
lea ecx, [esp + 0x20]
push ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
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 0x54adae
mov esi, dword [esp + 0x1194]
mov edi, dword [esp + 0x20]
mov ecx, ebx
push ebx
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]
lea ecx, [esp + 0x20]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Eos_unsigned_int_]
mov esi, dword [esp + 0x10]
lea eax, [esp + 0x1c]
push 0x5ca7d4
push eax
mov byte [esp + 0x1188], 2
call dword [sym.imp.MSVCP60.dll_bool___cdecl_std::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const__]
mov ecx, dword [esp + 0x28]
add esp, 8
neg al
sbb eax, eax
mov byte [esp + 0x1180], 1
and eax, 0x80004005
test ecx, ecx
mov edi, eax
je 0x54ae23
mov al, byte [ecx - 1]
test al, al
je 0x54adff
cmp al, 0xff
je 0x54adff
dec al
mov byte [ecx - 1], al
mov ecx, dword [esp + 0x1198]
mov dword [ecx], ebp
jmp 0x54ae38
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
mov ecx, dword [esp + 0x119c]
add esp, 4
mov dword [ecx], ebp
jmp 0x54ae38
mov ecx, dword [esp + 0x1198]
mov edi, eax
mov dword [ecx], ebp
jmp 0x54ae38
xor edi, edi
mov ecx, dword [esp + 0x1198]
mov dword [ecx], ebp
jmp 0x54ae38
mov edi, eax
jmp 0x54ae38
xor edi, edi
jmp 0x54ae38
mov edi, ebp
mov ecx, dword [esp + 0x14]
call fcn.0054cb10
test esi, esi
je 0x54ae79
lea edx, [esi + 8]
push edx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x54ae79
mov eax, dword [esi]
test eax, eax
je 0x54ae60
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
test eax, eax
je 0x54ae70
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, edi
mov ecx, dword [esp + 0x1178]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1174
ret 0x1c