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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x170
xor eax, eax
mov esi, ecx
cmp eax, dword [ecx + 0x54]
jno 0x49a5d6
cmp byte [esi + 0xa4], 0
je 0x49a5d6
mov edx, str.ALL_PROXYall_proxyHTTPS_PROXYhttps_proxyHTTP_PROXYhttp_proxy
lea ecx, [esp + 0xa0]
push 9
call fcn.0048af90
add esp, 4
mov edx, dword [esp + 0xa0]
mov eax, edx
neg eax
jno 0x499e08
lea ecx, [esp + 0xc]
lea eax, [esp + 0xc]
lea edx, [esp + 0xc]
lea edi, [esp + 0xc]
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0xc]
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x80], ecx
jmp 0x499f52
movzx ecx, byte [esp + 0xac]
mov eax, dword [esp + 0xa4]
mov edi, dword [esp + 0xa8]
test cl, 1
mov dword [esp + 0x20], eax
mov dword [esp + 0x80], edi
mov byte [esp + 0x40], cl
jne 0x499ed4
cmp dword [esp + 0x80], 0
je 0x499ed4
movzx eax, byte [esp + 0xaf]
movzx ecx, word [esp + 0xad]
mov ebx, dword [esp + 0x20]
shl eax, 0x10
or ecx, eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x1c], ecx
lea edi, [ebx + eax]
jmp 0x499e86
add ebx, 2
cmp ecx, edi
cmovne ecx, ebx
nop word cs:[eax + eax]
nop
cmp ecx, edi
mov ebx, ecx
je 0x499ed4
movzx eax, byte [ebx]
lea ecx, [ebx + 1]
test al, al
jns 0x499e80
cmp al, 0xe0
jb 0x499e6d
cmp al, 0xed
jne 0x499eb4
cmp ecx, edi
je 0x499ed4
lea eax, [ebx + 2]
cmp eax, edi
je 0x499ed4
cmp byte [ebx + 1], 0x9f
ja 0x49a79c
add ebx, 3
mov ecx, ebx
jmp 0x499e80
add ebx, 2
cmp ecx, edi
cmove ebx, ecx
xor ecx, ecx
cmp ebx, edi
setne cl
add ecx, ebx
cmp al, 0xf0
jb 0x499e80
xor eax, eax
cmp ecx, edi
setne al
add ecx, eax
jmp 0x499e80
mov ecx, edx
mov ebx, dword [esp + 0x80]
lea edx, [esp + 0xc]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x80], edx
mov eax, ebx
mov dword [esp + 0x10], ecx
mov byte [esp + 0x14], bl
shr ebx, 0x18
shr eax, 8
mov byte [esp + 0x17], bl
lea ebx, [esp + 0xa0]
mov word [esp + 0x15], ax
mov dword [esp + 8], 0x80000001
mov ecx, ebx
call fcn.0049a9b0
cmp dword [esp + 0xa0], 3
je 0x49a544
lea eax, [esp + 0xc]
lea edx, [esp + 0xc]
lea ecx, [esp + 0xc]
lea edi, [esp + 0xc]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x40], ecx
push ebx
call fcn.0049b710
add esp, 4
lea ecx, [esp + 0xa0]
mov edx, 0x5e44b9
push 9
call fcn.0048af90
add esp, 4
mov ecx, dword [esp + 0xa0]
mov eax, ecx
neg eax
jo 0x49a08a
movzx edx, byte [esp + 0xac]
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x38], edi
test dl, 1
mov dword [esp + 0x20], eax
mov byte [esp + 0x54], dl
jne 0x49a034
test ecx, ecx
je 0x49a034
movzx eax, byte [esp + 0xaf]
mov ebx, dword [esp + 0x20]
movzx edx, word [esp + 0xad]
shl eax, 0x10
lea edi, [ebx + ecx]
or edx, eax
mov dword [esp + 0x9c], edx
jmp 0x499fe6
add ebx, 2
cmp edx, edi
cmovne edx, ebx
nop dword [eax]
cmp edx, edi
mov ebx, edx
je 0x49a034
movzx eax, byte [ebx]
lea edx, [ebx + 1]
test al, al
jns 0x499fe0
cmp al, 0xe0
jb 0x499fd5
cmp al, 0xed
jne 0x49a014
cmp edx, edi
je 0x49a034
lea eax, [ebx + 2]
cmp eax, edi
je 0x49a034
cmp byte [ebx + 1], 0x9f
ja 0x49a813
add ebx, 3
mov edx, ebx
jmp 0x499fe0
add ebx, 2
cmp edx, edi
cmove ebx, edx
xor edx, edx
cmp ebx, edi
setne dl
add edx, ebx
cmp al, 0xf0
jb 0x499fe0
xor eax, eax
cmp edx, edi
setne al
add edx, eax
jmp 0x499fe0
mov edx, dword [esp + 0x18]
mov eax, ecx
lea ebx, [esp + 0xa0]
shr eax, 8
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x38]
mov byte [esp + 0x14], cl
shr ecx, 0x18
mov word [esp + 0x15], ax
mov byte [esp + 0x17], cl
mov ecx, ebx
mov dword [esp + 8], 0x80000001
call fcn.0049a9b0
cmp dword [esp + 0xa0], 3
je 0x49a544
push ebx
call fcn.0049b710
add esp, 4
lea ecx, [esp + 0xa0]
mov edx, 0x5e44c2
push 0xb
call fcn.0048af90
add esp, 4
mov ecx, dword [esp + 0xa0]
mov eax, ecx
neg eax
jo 0x49a1ba
movzx edx, byte [esp + 0xac]
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa8]
test dl, 1
mov dword [esp + 0x20], eax
mov byte [esp + 0x38], dl
jne 0x49a164
test ecx, ecx
je 0x49a164
movzx eax, byte [esp + 0xaf]
mov ebx, dword [esp + 0x20]
movzx edx, word [esp + 0xad]
shl eax, 0x10
lea edi, [ebx + ecx]
or edx, eax
mov dword [esp + 0x54], edx
jmp 0x49a116
add ebx, 2
cmp edx, edi
cmovne edx, ebx
nop
cmp edx, edi
mov ebx, edx
je 0x49a164
movzx eax, byte [ebx]
lea edx, [ebx + 1]
test al, al
jns 0x49a110
cmp al, 0xe0
jb 0x49a106
cmp al, 0xed
jne 0x49a144
cmp edx, edi
je 0x49a164
lea eax, [ebx + 2]
cmp eax, edi
je 0x49a164
cmp byte [ebx + 1], 0x9f
ja 0x49a865
add ebx, 3
mov edx, ebx
jmp 0x49a110
add ebx, 2
cmp edx, edi
cmove ebx, edx
xor edx, edx
cmp ebx, edi
setne dl
add edx, ebx
cmp al, 0xf0
jb 0x49a110
xor eax, eax
cmp edx, edi
setne al
add edx, eax
jmp 0x49a110
mov edx, dword [esp + 0x18]
mov eax, ecx
lea edi, [esp + 0xa0]
shr eax, 8
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x40]
mov byte [esp + 0x14], cl
shr ecx, 0x18
mov word [esp + 0x15], ax
mov byte [esp + 0x17], cl
mov ecx, edi
mov dword [esp + 8], 0x80000001
call fcn.0049a9b0
cmp dword [esp + 0xa0], 3
je 0x49a544
push edi
call fcn.0049b710
add esp, 4
lea ecx, [esp + 0xa0]
mov edx, 0x5e44cd
push 0xb
call fcn.0048af90
add esp, 4
mov ecx, dword [esp + 0xa0]
mov eax, ecx
neg eax
jo 0x49a2ea
movzx edx, byte [esp + 0xac]
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa8]
test dl, 1
mov dword [esp + 0x20], eax
mov byte [esp + 0x18], dl
jne 0x49a294
test ecx, ecx
je 0x49a294
movzx eax, byte [esp + 0xaf]
mov ebx, dword [esp + 0x20]
movzx edx, word [esp + 0xad]
shl eax, 0x10
lea edi, [ebx + ecx]
or edx, eax
mov dword [esp + 0x38], edx
jmp 0x49a246
add ebx, 2
cmp edx, edi
cmovne edx, ebx
nop
cmp edx, edi
mov ebx, edx
je 0x49a294
movzx eax, byte [ebx]
lea edx, [ebx + 1]
test al, al
jns 0x49a240
cmp al, 0xe0
jb 0x49a236
cmp al, 0xed
jne 0x49a274
cmp edx, edi
je 0x49a294
lea eax, [ebx + 2]
cmp eax, edi
je 0x49a294
cmp byte [ebx + 1], 0x9f
ja 0x49a8b4
add ebx, 3
mov edx, ebx
jmp 0x49a240
add ebx, 2
cmp edx, edi
cmove ebx, edx
xor edx, edx
cmp ebx, edi
setne dl
add edx, ebx
cmp al, 0xf0
jb 0x49a240
xor eax, eax
cmp edx, edi
setne al
add edx, eax
jmp 0x49a240
mov edx, dword [esp + 0x40]
mov eax, ecx
lea edi, [esp + 0xa0]
shr eax, 8
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x14], cl
shr ecx, 0x18
mov word [esp + 0x15], ax
mov byte [esp + 0x17], cl
mov ecx, edi
mov dword [esp + 8], 0x80000001
call fcn.0049a9b0
cmp dword [esp + 0xa0], 3
je 0x49a544
push edi
call fcn.0049b710
add esp, 4
lea ecx, [esp + 0xa0]
mov edx, 0x5e44d8
push 0xa
call fcn.0048af90
add esp, 4
mov ecx, dword [esp + 0xa0]
mov eax, ecx
neg eax
jo 0x49a41a
movzx edx, byte [esp + 0xac]
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa8]
test dl, 1
mov dword [esp + 0x20], eax
mov byte [esp + 0x1c], dl
jne 0x49a3c4
test ecx, ecx
je 0x49a3c4
movzx eax, byte [esp + 0xaf]
mov ebx, dword [esp + 0x20]
movzx edx, word [esp + 0xad]
shl eax, 0x10
lea edi, [ebx + ecx]
or edx, eax
mov dword [esp + 0x18], edx
jmp 0x49a376
add ebx, 2
cmp edx, edi
cmovne edx, ebx
nop
cmp edx, edi
mov ebx, edx
je 0x49a3c4
movzx eax, byte [ebx]
lea edx, [ebx + 1]
test al, al
jns 0x49a370
cmp al, 0xe0
jb 0x49a366
cmp al, 0xed
jne 0x49a3a4
cmp edx, edi
je 0x49a3c4
lea eax, [ebx + 2]
cmp eax, edi
je 0x49a3c4
cmp byte [ebx + 1], 0x9f
ja 0x49a903
add ebx, 3
mov edx, ebx
jmp 0x49a370
add ebx, 2
cmp edx, edi
cmove ebx, edx
xor edx, edx
cmp ebx, edi
setne dl
add edx, ebx
cmp al, 0xf0
jb 0x49a370
xor eax, eax
cmp edx, edi
setne al
add edx, eax
jmp 0x49a370
mov edx, dword [esp + 0x40]
mov eax, ecx
lea edi, [esp + 0xa0]
shr eax, 8
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x3c]
mov byte [esp + 0x14], cl
shr ecx, 0x18
mov word [esp + 0x15], ax
mov byte [esp + 0x17], cl
mov ecx, edi
mov dword [esp + 8], 0x80000001
call fcn.0049a9b0
cmp dword [esp + 0xa0], 3
je 0x49a544
push edi
call fcn.0049b710
add esp, 4
lea ecx, [esp + 0xa0]
mov edx, 0x5e44e2
push 0xa
call fcn.0048af90
add esp, 4
mov ecx, dword [esp + 0xa0]
mov eax, ecx
neg eax
jo 0x49a5d6
movzx edx, byte [esp + 0xac]
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa8]
test dl, 1
mov dword [esp + 0x20], eax
mov byte [esp + 0x1c], dl
jne 0x49a4f4
test ecx, ecx
je 0x49a4f4
movzx eax, byte [esp + 0xaf]
mov ebx, dword [esp + 0x20]
movzx edx, word [esp + 0xad]
shl eax, 0x10
lea edi, [ebx + ecx]
or edx, eax
mov dword [esp + 0x3c], edx
jmp 0x49a4a6
add ebx, 2
cmp edx, edi
cmovne edx, ebx
nop
cmp edx, edi
mov ebx, edx
je 0x49a4f4
movzx eax, byte [ebx]
lea edx, [ebx + 1]
test al, al
jns 0x49a4a0
cmp al, 0xe0
jb 0x49a496
cmp al, 0xed
jne 0x49a4d4
cmp edx, edi
je 0x49a4f4
lea eax, [ebx + 2]
cmp eax, edi
je 0x49a4f4
cmp byte [ebx + 1], 0x9f
ja 0x49a952
add ebx, 3
mov edx, ebx
jmp 0x49a4a0
add ebx, 2
cmp edx, edi
cmove ebx, edx
xor edx, edx
cmp ebx, edi
setne dl
add edx, ebx
cmp al, 0xf0
jb 0x49a4a0
xor eax, eax
cmp edx, edi
setne al
add edx, eax
jmp 0x49a4a0
mov edx, dword [esp + 0x40]
mov eax, ecx
lea edi, [esp + 0xa0]
shr eax, 8
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x80]
mov byte [esp + 0x14], cl
shr ecx, 0x18
mov word [esp + 0x15], ax
mov byte [esp + 0x17], cl
mov ecx, edi
mov dword [esp + 8], 0x80000001
call fcn.0049a9b0
cmp dword [esp + 0xa0], 3
jne 0x49a78e
movsd xmm2, qword [esp + 0xb0]
movsd xmm1, qword [esp + 0xb8]
mov eax, dword [esp + 0xa4]
movsd xmm0, qword [esp + 0xa8]
movsd qword [esp + 0x60], xmm2
movsd qword [esp + 0x68], xmm1
movsd xmm2, qword [esp + 0xc0]
movq xmm1, qword [esp + 0xc8]
mov ecx, eax
movsd qword [esp + 0x58], xmm0
neg ecx
movsd qword [esp + 0x70], xmm2
movq qword [esp + 0x78], xmm1
jo 0x49a5d6
movsd xmm1, qword [esp + 0x60]
mov dword [esi + 0x54], eax
movsd xmm0, qword [esp + 0x58]
movsd xmm2, qword [esp + 0x70]
movsd qword [esi + 0x60], xmm1
movsd xmm1, qword [esp + 0x68]
movsd qword [esi + 0x58], xmm0
movsd qword [esi + 0x70], xmm2
movsd qword [esi + 0x68], xmm1
movq xmm1, qword [esp + 0x78]
movq qword [esi + 0x78], xmm1
movzx eax, byte [0x6019e5]
xor ecx, ecx
mov edx, 0x90
call fcn.00499510
test eax, eax
je 0x49a9a1
mov edi, eax
mov dword [eax], 1
mov dword [eax + 4], 1
add eax, 8
push 0x88
push esi
push eax
call fcn.004ef180
add esp, 0xc
movq xmm0, qword [esi + 0x9c]
mov ecx, dword fs:[0x2c]
movdqa xmmword [esp + 0x80], xmm0
mov eax, dword [0x6019e8]
mov eax, dword [ecx + eax*4]
test byte [eax + 0x30], 1
je 0x49a654
mov eax, dword [0x6019e8]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
movdqu xmm1, xmmword [eax + 0x38]
jmp 0x49a6aa
pxor xmm0, xmm0
lea eax, [esp + 0xa0]
movdqa xmmword [esp + 0xa0], xmm0
push 0x10
push eax
call dword [sym.imp.bcryptprimitives.dll_ProcessPrng]
mov eax, dword [0x6019e8]
mov ecx, dword fs:[0x2c]
movdqa xmm1, xmmword [esp + 0xa0]
mov eax, dword [ecx + eax*4]
pshufd xmm0, xmm1, 0xee
mov dword [eax + 0x34], 0
mov dword [eax + 0x30], 1
movq qword [eax + 0x40], xmm0
movdqa xmmword [esp + 0x20], xmm1
mov ebx, dword fs:[0x2c]
pshufd xmm0, xmm1, 0x55
movd ecx, xmm1
mov edx, dword [0x6019e8]
movd eax, xmm0
movsd xmm0, qword [esi + 0x88]
add ecx, 1
adc eax, 0
mov edx, dword [ebx + edx*4]
movaps xmmword [esp + 0x40], xmm0
mov dword [edx + 0x38], ecx
mov dword [edx + 0x3c], eax
xor ecx, ecx
mov edx, 0x60
movzx eax, byte [0x6019e5]
call fcn.00499510
test eax, eax
je 0x49a9a1
movaps xmm0, xmmword [esp + 0x40]
mov dword [eax], 1
mov dword [eax + 4], 1
mov edx, eax
movlps qword [eax + 8], xmm0
movsd xmm0, qword [0x5e4140]
mov byte [eax + 0x10], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 4
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0
movsd qword [eax + 0x28], xmm0
movsd xmm0, qword [0x5e4148]
movsd qword [eax + 0x30], xmm0
movaps xmm0, xmmword [esp + 0x20]
movups xmmword [eax + 0x38], xmm0
movaps xmm0, xmmword [esp + 0x80]
movlps qword [eax + 0x48], xmm0
movsd xmm0, qword [esi + 0x90]
movsd qword [eax + 0x50], xmm0
mov eax, dword [esi + 0x98]
mov dword [edx + 0x58], eax
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push edi
call fcn.0049b710
add esp, 4
jmp 0x49a5d6
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x80]
mov dword [esp + 8], edx
lea ebx, [esp + 0xc]
lea edi, [esp + 0xc]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
movzx eax, byte [esp + 0x40]
mov byte [esp + 0x14], al
mov eax, dword [esp + 0x1c]
mov word [esp + 0x15], ax
shr eax, 0x10
test edx, 0x7fffffff
lea edx, [esp + 0xc]
mov byte [esp + 0x17], al
lea eax, [esp + 0xc]
mov dword [esp + 0x80], edx
mov dword [esp + 0x40], eax
lea eax, [esp + 0xc]
mov dword [esp + 0x1c], eax
je 0x499f52
push ecx
push 0
push dword [0x6019d8]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x499f52
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
movzx ecx, byte [esp + 0x54]
mov byte [esp + 0x14], cl
mov ecx, dword [esp + 0x9c]
mov word [esp + 0x15], cx
shr ecx, 0x10
test eax, 0x7fffffff
mov byte [esp + 0x17], cl
je 0x49a08a
push dword [esp + 0xc]
push 0
push dword [0x6019d8]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x49a08a
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
movzx ecx, byte [esp + 0x38]
mov byte [esp + 0x14], cl
mov ecx, dword [esp + 0x54]
mov word [esp + 0x15], cx
shr ecx, 0x10
test eax, 0x7fffffff
mov byte [esp + 0x17], cl
je 0x49a1ba
push dword [esp + 0xc]
push 0
push dword [0x6019d8]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x49a1ba
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x20]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
movzx ecx, byte [esp + 0x18]
mov byte [esp + 0x14], cl
mov ecx, dword [esp + 0x38]
mov word [esp + 0x15], cx
shr ecx, 0x10
test eax, 0x7fffffff
mov byte [esp + 0x17], cl
je 0x49a2ea
push dword [esp + 0xc]
push 0
push dword [0x6019d8]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x49a2ea
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x20]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
movzx ecx, byte [esp + 0x1c]
mov byte [esp + 0x14], cl
mov ecx, dword [esp + 0x18]
mov word [esp + 0x15], cx
shr ecx, 0x10
test eax, 0x7fffffff
mov byte [esp + 0x17], cl
je 0x49a41a
push dword [esp + 0xc]
push 0
push dword [0x6019d8]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x49a41a
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x20]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
movzx ecx, byte [esp + 0x1c]
mov byte [esp + 0x14], cl
mov ecx, dword [esp + 0x3c]
mov word [esp + 0x15], cx
shr ecx, 0x10
test eax, 0x7fffffff
mov byte [esp + 0x17], cl
je 0x49a5d6
push dword [esp + 0xc]
push 0
push dword [0x6019d8]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x49a5d6
ud2