Function at 0x10021330
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1004f27d
mov eax, dword fs:[0]
push eax
sub esp, 0x160
mov eax, dword [0x10067068]
xor eax, esp
mov dword [esp + 0x158], eax
push ebx
push esi
push edi
mov eax, dword [0x10067068]
xor eax, esp
push eax
lea eax, [esp + 0x170]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x18]
xor edi, edi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], eax
cmp eax, edi
je 0x10021394
mov dword [eax], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x178], edi
mov eax, dword [ebx - 0x18]
mov dword [esp + 0x14], eax
cmp eax, edi
je 0x100213b6
mov edx, dword [eax]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
mov byte [esp + 0x178], 1
cmp eax, edi
jne 0x100213e0
mov eax, dword [ebx - 0x1c]
mov ecx, dword [eax]
lea edx, [esp + 0x14]
push edx
push 0x10057680
push eax
mov eax, dword [ecx]
call eax
mov esi, eax
cmp esi, edi
jl 0x100213f9
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
lea edx, [esp + 0x18]
push edx
push 0x100576b0
push 0x100576b0
push eax
mov eax, dword [ecx + 0xc]
call eax
mov esi, eax
mov byte [esp + 0x178], 0
mov eax, dword [esp + 0x14]
cmp eax, edi
je 0x10021411
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp esi, edi
jge 0x10021437
mov dword [esp + 0x178], 0xffffffff
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x10021430
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, esi
jmp 0x10021919
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x10021460
mov edx, dword [esp + 0x28]
mov ecx, dword [eax]
push edx
mov edx, dword [ebp + 0x14]
push edx
mov edx, dword [esp + 0x24]
push edx
mov edx, dword [esp + 0x2c]
push edx
push eax
mov eax, dword [ecx + 0xc]
call eax
mov esi, eax
cmp esi, edi
jl 0x10021415
lea ecx, [esp + 0x10]
call dword [0x1005274c]
lea eax, [esp + 0x30]
push eax
mov byte [esp + 0x17c], 2
call fcn.10025eb0
xor edx, edx
lea eax, [esp + 0x30]
mov byte [esp + 0x178], 3
call fcn.10026130
cmp eax, edi
je 0x10021510
push edi
push 0x100694d0
push 0x100694b4
push edi
push eax
call sub.MSVCR100.dll___RTDynamicCast
mov esi, eax
add esp, 0x14
cmp esi, edi
je 0x10021510
lea ecx, [esp + 0xac]
push ecx
call fcn.100145c0
mov byte [esp + 0x178], 4
mov eax, dword [esi]
lea edx, [esp + 0xac]
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], edx
mov edx, dword [eax]
push ecx
mov ecx, esi
mov dword [esp + 0x28], 0xb8
call edx
cmp dword [esp + 0x160], edi
je 0x100214fb
push str.DNT:_1_r_n
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator]
lea eax, [esp + 0xac]
push eax
mov byte [esp + 0x17c], 3
call fcn.10014650
cmp byte [ebx + 0x75], 0
je 0x1002183a
xor ecx, ecx
push edi
mov word [esp + 0x78], cx
add ebx, 0x3c
mov esi, 7
push ebx
or eax, 0xffffffff
lea ecx, [esp + 0x7c]
mov dword [esp + 0x90], esi
mov dword [esp + 0x8c], edi
call fcn.1000c030
xor edx, edx
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa0], edi
mov word [esp + 0x90], dx
xor eax, eax
mov dword [esp + 0x6c], esi
mov dword [esp + 0x68], edi
mov word [esp + 0x58], ax
lea ecx, [esp + 0x44]
push ecx
mov byte [esp + 0x17c], 7
call fcn.10025eb0
mov ebx, 8
xor edx, edx
lea eax, [esp + 0x44]
mov byte [esp + 0x178], bl
call fcn.10026130
cmp eax, edi
je 0x1002162e
push edi
push 0x100694d0
push 0x100694b4
push edi
push eax
call sub.MSVCR100.dll___RTDynamicCast
mov esi, eax
add esp, 0x14
cmp esi, edi
je 0x1002162e
lea edx, [esp + 0xac]
push edx
call fcn.100145c0
mov byte [esp + 0x178], 9
mov edx, dword [esi]
mov edx, dword [edx]
lea eax, [esp + 0xac]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x20]
push eax
mov ecx, esi
mov dword [esp + 0x28], 0xb8
call edx
push edi
lea eax, [esp + 0xcc]
push eax
or eax, 0xffffffff
lea ecx, [esp + 0x98]
call fcn.1000c030
push edi
lea ecx, [esp + 0xb0]
push ecx
or eax, 0xffffffff
lea ecx, [esp + 0x60]
call fcn.1000c030
lea edx, [esp + 0xac]
push edx
mov byte [esp + 0x17c], bl
call fcn.10014650
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x2c]
add eax, 0x20
mov byte [esp + 0x178], 0xb
cmp dword [eax + 0x14], ebx
jb 0x1002164c
mov eax, dword [eax]
lea ecx, [esp + 0x1c]
push ecx
push edi
push edi
push eax
call dword [sym.imp.urlmon.dll_CreateUri]
mov edi, eax
test edi, edi
jns 0x1002170c
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov byte [esp + 0x178], bl
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x10021686
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea eax, [esp + 0x44]
push eax
mov byte [esp + 0x17c], 7
call fcn.10025ff0
lea esi, [esp + 0x58]
mov byte [esp + 0x178], 6
call fcn.100187d0
lea esi, [esp + 0x90]
mov byte [esp + 0x178], 5
call fcn.100187d0
lea esi, [esp + 0x74]
mov byte [esp + 0x178], 3
call fcn.100187d0
lea ecx, [esp + 0x30]
push ecx
mov byte [esp + 0x17c], 2
call fcn.10025ff0
lea ecx, [esp + 0x10]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
mov dword [esp + 0x178], 0xffffffff
mov eax, dword [esp + 0x18]
test eax, eax
je 0x10021705
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, edi
jmp 0x10021919
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
lea edx, [esp + 0x14]
push edx
push eax
mov eax, dword [ecx + 0x34]
call eax
push str.X_TA_AffiliateID:
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator]
mov eax, dword [esp + 0x58]
cmp dword [esp + 0x6c], ebx
jae 0x1002173a
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator]
push str._r_nX_TA_InsID:
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator]
mov eax, dword [esp + 0x90]
cmp dword [esp + 0xa4], ebx
jae 0x1002176b
lea eax, [esp + 0x90]
push eax
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator]
push str._r_nX_TA_HOST:
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator]
mov ecx, dword [esp + 0x14]
push ecx
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator]
push str._r_nX_TA_REFERRER:
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator]
mov eax, dword [esp + 0x74]
cmp dword [esp + 0x88], ebx
jae 0x100217b4
lea eax, [esp + 0x74]
push eax
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator]
push 0x100593dc
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator]
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov byte [esp + 0x178], bl
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x100217f0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea eax, [esp + 0x44]
push eax
mov byte [esp + 0x17c], 7
call fcn.10025ff0
lea esi, [esp + 0x58]
mov byte [esp + 0x178], 6
call fcn.100187d0
lea esi, [esp + 0x90]
mov byte [esp + 0x178], 5
call fcn.100187d0
lea esi, [esp + 0x74]
mov byte [esp + 0x178], 3
call fcn.100187d0
xor edi, edi
mov ecx, dword [esp + 0x10]
cmp dword [ecx - 0xc], edi
je 0x100218e0
mov ebx, dword [esp + 0x28]
mov eax, dword [ebx]
cmp eax, edi
je 0x10021865
push eax
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator]
mov edx, dword [ebx]
push edx
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov eax, dword [esp + 0x10]
mov eax, dword [eax - 0xc]
lea ecx, [eax + eax + 2]
push ecx
call dword [sym.imp.ole32.dll_CoTaskMemAlloc]
cmp eax, edi
jne 0x100218b9
lea edx, [esp + 0x30]
push edx
mov byte [esp + 0x17c], 2
call fcn.10025ff0
lea ecx, [esp + 0x10]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
mov dword [esp + 0x178], 0xffffffff
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x100218b2
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 0x8007000e
jmp 0x10021919
mov edx, dword [esp + 0x10]
mov esi, eax
nop
movzx ecx, word [edx]
mov word [esi], cx
add edx, 2
add esi, 2
cmp cx, di
jne 0x100218c0
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx - 0xc]
xor edx, edx
mov word [eax + ecx*2], dx
mov dword [ebx], eax
lea eax, [esp + 0x30]
push eax
mov byte [esp + 0x17c], 2
call fcn.10025ff0
lea ecx, [esp + 0x10]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
mov dword [esp + 0x178], 0xffffffff
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x10021917
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
xor eax, eax
mov ecx, dword [esp + 0x170]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x158]
xor ecx, esp
call fcn.10048188
mov esp, ebp
pop ebp
ret 0x14