Function at 0x70290700
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x70314f96
mov eax, dword fs:[0]
push eax
sub esp, 0x244
mov eax, dword [0x7034b250]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor edi, edi
mov esi, ecx
xor ebx, ebx
mov dword [ebp - 0x214], edi
mov dword [ebp - 0x218], esi
mov dword [ebp - 0x220], ebx
push 0x200
lea eax, [ebp - 0x210]
push edi
push eax
mov dword [ebp - 4], edi
call fcn.702e95e0
add esp, 0xc
push esi
mov dword [ebp - 0x224], 0x100
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push edi
inc eax
cdq
push 2
push edx
push eax
call fcn.702fbce0
mov esi, eax
add eax, 0x80000000
adc edx, edi
mov dword [ebp - 0x22c], edx
jne 0x70290808
cmp eax, 0xffffffff
ja 0x70290808
cmp esi, 0x400
jg 0x702907b1
push esi
call fcn.7020c9f0
add esp, 4
test al, al
je 0x702907b1
mov eax, esi
call fcn.702e98d0
mov edi, esp
jmp 0x702907d8
or ecx, 0xffffffff
sub ecx, esi
cmp ecx, 8
jb 0x702907fe
lea eax, [esi + 8]
push eax
call fcn.702e20da
add esp, 4
cmp eax, edi
je 0x702907d8
mov ebx, eax
mov dword [eax], edi
mov dword [ebp - 0x220], ebx
lea edi, [eax + 8]
shr esi, 1
test edi, edi
je 0x70290808
mov eax, dword [ebp - 0x218]
push esi
push edi
push 0xffffffffffffffff
xor edx, edx
push eax
push edx
push edx
mov word [edi], dx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
neg eax
sbb eax, eax
and eax, edi
jmp 0x7029080a
push 0x80070057
call fcn.702042c0
xor eax, eax
xor edi, edi
push edi
push 2
lea ecx, [ebp - 0x224]
push ecx
lea edx, [ebp - 0x210]
push edx
push eax
call dword [sym.imp.SHLWAPI.dll_UrlGetPartW]
cmp eax, edi
jge 0x70290848
cmp ebx, edi
je 0x70290841
lea esp, [esp]
mov eax, ebx
mov ebx, dword [ebx]
push eax
call fcn.702e1dee
add esp, 4
cmp ebx, edi
jne 0x70290830
xor eax, eax
jmp 0x70290a47
lea eax, [ebp - 0x24c]
push eax
mov dword [ebp - 0x218], edi
call fcn.7022b0d0
push 0x24
mov byte [ebp - 4], 1
call fcn.702e1f8d
mov esi, eax
add esp, 4
mov dword [ebp - 0x22c], esi
mov byte [ebp - 4], 2
cmp esi, edi
je 0x702908a7
lea ecx, [ebp - 0x21c]
push ecx
lea ecx, [ebp - 0x210]
call fcn.7021b390
lea edx, [ebp - 0x21c]
push edx
mov byte [ebp - 4], 3
push esi
mov dword [ebp - 0x214], 1
call fcn.7028eb90
mov edi, eax
mov dword [ebp - 4], 1
test byte [ebp - 0x214], 1
je 0x702908d9
mov eax, dword [ebp - 0x21c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x702908d9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test edi, edi
je 0x70290a0b
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
push edi
call esi
mov ecx, dword [str.d_n]
push edi
mov dword [ebp - 0x22c], ecx
call esi
lea edx, [ebp - 0x214]
push edx
push 0
push edi
push 0x7028f750
push 0
push 0
mov dword [ebp - 0x214], 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
test eax, eax
jne 0x7029096f
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x702909fb
lea esi, [edi + 8]
call fcn.7027fc70
mov eax, dword [esi]
push eax
call fcn.702e1c24
mov eax, dword [edi + 4]
sub eax, 0x10
add esp, 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x70290961
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push edi
call fcn.702e1c24
add esp, 4
jmp 0x702909fb
mov ecx, dword [ebp - 0x22c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
neg eax
sbb eax, eax
add eax, 1
je 0x702909fb
lea ecx, [edi + 8]
lea eax, [ebp - 0x24c]
call fcn.7028f780
cmp dword [ebp - 0x234], 0
je 0x702909fb
mov eax, dword [ebp - 0x24c]
mov edx, dword [ebp - 0x238]
mov esi, dword [edx]
test eax, eax
jne 0x70290a69
call fcn.702e2961
xor eax, eax
cmp esi, dword [eax + 0x14]
jne 0x702909c4
call fcn.702e2961
mov ecx, dword [esi + 8]
mov eax, ecx
and eax, 0xff
cmp eax, 0x7f
je 0x702909fb
cmp eax, 0xa
je 0x702909fb
mov eax, ecx
and eax, 0xf0ff
cmp eax, 0x10ac
je 0x702909fb
movzx ecx, cx
cmp ecx, 0xa8c0
je 0x702909fb
mov dword [ebp - 0x218], 1
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x70290a0b
call fcn.7028ec00
lea esi, [ebp - 0x24c]
call fcn.7027fc70
mov edx, dword [ebp - 0x24c]
push edx
call fcn.702e1c24
add esp, 4
test ebx, ebx
je 0x70290a41
lea esp, [esp]
mov eax, ebx
mov ebx, dword [ebx]
push eax
call fcn.702e1dee
add esp, 4
test ebx, ebx
jne 0x70290a30
mov eax, dword [ebp - 0x218]
lea esp, [ebp - 0x260]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.702e1c2f
mov esp, ebp
pop ebp
ret
mov eax, dword [eax]
jmp 0x702909ba