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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x540
call 0x46bf38
pop eax
lea esi, [esp + 0x330]
mov dword [esp + 0x40], eax
push 2
pop edx
mov ecx, esi
call fcn.00421b6b
mov eax, dword [esi]
xor eax, 3
or eax, dword [esi + 4]
je 0x46d82c
push 0x10
pop ecx
lea eax, [esp + 0x330]
lea edi, [esp + 0x248]
mov edx, 0x4dd0e6
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov edi, eax
mov ecx, eax
push 3
call fcn.0045e974
pop eax
lea ebx, [esp + 0xa0]
lea esi, [esp + 0x248]
xorps xmm0, xmm0
lea eax, [esp + 0x1f0]
movaps xmmword [eax], xmm0
mov ecx, ebx
mov edx, esi
push edi
push eax
call fcn.004284c5
pop eax
pop ecx
mov ecx, ebx
call fcn.00401af5
lea edi, [esp + 0x4f8]
push 0x10
pop ecx
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x330]
mov ecx, esi
call fcn.0048eba7
lea edi, [esp + 0x4e8]
mov edx, esi
mov ecx, edi
call fcn.0044f790
mov eax, dword [edi + 8]
movsd xmm0, qword [0x4e1948]
mov dword [esp + 8], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0xc], eax
mov eax, dword [edi]
mov dword [esp + 0x14], eax
mov edx, dword [edi + 4]
movsd qword [ebx + 0xc], xmm0
movsd xmm0, qword [0x4e1940]
movsd qword [ebx + 4], xmm0
movsd xmm0, qword [ebx + 8]
mov eax, dword [ebx + 0x10]
movsd qword [esi + 0xbc], xmm0
movsd xmm0, qword [ebx]
mov dword [esi + 0xc4], eax
lea eax, [esp + 0x330]
movsd qword [esi + 0xb4], xmm0
push 0x10
pop ecx
lea esi, [esp + 0x4f8]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x3b9aca00
lea edi, [esp + 0x1f0]
and dword [eax + 0x40], 0
and dword [eax + 0x48], 0
and dword [eax + 0x50], 0
mov dword [eax + 0x60], ecx
and dword [eax + 0x6c], 0
mov dword [eax + 0x68], 0x5a
and dword [eax + 0x70], 0
mov dword [eax + 0x80], ecx
mov dword [eax + 0x90], ecx
mov dword [eax + 0xa0], ecx
mov dword [eax + 0xb0], ecx
mov ecx, dword [esp + 0x14]
mov dword [eax + 0xcc], edx
mov dword [eax + 0xc8], ecx
mov ecx, dword [esp + 0xc]
mov dword [eax + 0xd4], ecx
mov ecx, dword [esp + 8]
mov dword [eax + 0xd0], ecx
and dword [eax + 0xd8], 0
mov dword [eax + 0xe0], 1
mov dword [eax + 0xe4], 0xa
and dword [eax + 0xec], 0
push 4
pop ecx
mov dword [eax + 0xf0], ecx
and dword [eax + 0xf4], 0
and dword [eax + 0xf8], 0
mov dword [eax + 0xfc], ecx
and dword [eax + 0x100], 0
or dword [eax + 0x104], 0xffffffff
and dword [eax + 0x108], 0
mov dword [eax + 0x10c], 0x1000101
mov word [eax + 0x110], 0x101
and dword [eax + 0x116], 0
and dword [eax + 0x112], 0
mov dword [eax + 0x11a], 0x2000001
mov byte [eax + 0x11e], 2
mov word [eax + 0x12f], 0x404
mov ecx, dword [eax + 0xf4]
movsd xmm0, qword [eax + 0xec]
mov dword [esp + 0x80], ecx
movsd qword [esp + 0x78], xmm0
mov eax, dword [0x50c188]
cmp eax, 2
je 0x46c1a0
lea ecx, [0x50c18c]
mov eax, 0x50c188
lea edx, [esp + 0x248]
lea esi, [esp + 0xa0]
mov dword [esp + 0xa0], ecx
lea ecx, [esp + 0x18]
mov dword [edx], edi
mov dword [edx + 4], esi
mov dword [esp + 0x1f0], eax
mov dword [edx + 8], ecx
mov ecx, 0x50c188
push 0x4dcf0c
call fcn.00432ca1
pop eax
mov eax, dword [0x50c18c]
lock inc dword [eax]
jle 0x46d82a
lea ebx, [esp + 0x274]
lea esi, [esp + 0xa0]
mov edx, 0x4dd90e
mov dword [ebx - 0x2c], 3
mov dword [ebx - 0x28], eax
mov dword [ebx], 0x80000000
mov ecx, esi
push 8
call fcn.0047fef0
pop eax
mov esi, dword [esi]
cmp esi, 0x80000001
jne 0x46c207
mov eax, dword [esp + 0xac]
movsd xmm0, qword [esp + 0xa4]
mov dword [esp + 0x1fc], eax
movsd qword [esp + 0x1f4], xmm0
jmp 0x46c247
mov edi, dword [esp + 0xa4]
lea ebx, [esp + 0x1f0]
mov edx, 0x4dd916
mov ecx, ebx
push 8
call fcn.0047fef0
pop eax
mov edx, edi
mov ecx, esi
lea edi, [esp + 0x1f0]
call fcn.0046aa27
cmp dword [ebx], 0x80000001
lea ebx, [esp + 0x274]
jne 0x46c698
mov esi, dword [esp + 0x1fc]
mov ecx, dword [esp + 0x1f4]
mov eax, dword [esp + 0x1f8]
test esi, esi
je 0x46c6a9
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x48]
and dword [ecx], 0
mov dword [ecx + 4], 1
and dword [ecx + 8], 0
lea ecx, [esp + 0x20]
and dword [ecx], 0
mov dword [ecx + 4], 4
and dword [ecx + 8], 0
push 0x2c
pop edx
mov ecx, edi
push esi
mov dword [esp + 0x20], eax
push eax
call fcn.00453b3a
pop eax
pop ecx
lea eax, [esp + 0x1f1]
and dword [eax + 0x1b], 0
mov dword [eax + 0x1f], esi
mov word [eax + 0x23], 1
push 0xa
pop ecx
lea edi, [esp + 0xa0]
lea esi, [esp + 0x1f0]
rep movsd dword es:[edi], dword [esi]
cmp byte [esp + 0xc5], 0
jne 0x46c641
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0xa8]
mov esi, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], esi
mov ebx, dword [esp + 0xac]
mov eax, esi
sub eax, ebx
jb 0x46c3b4
cmp esi, dword [esp + 8]
ja 0x46c3b4
mov edi, ecx
movzx ecx, byte [esp + ecx + 0xb7]
mov esi, edx
add edx, ebx
cmp eax, 8
jae 0x46c331
push eax
call fcn.0042477c
jmp 0x46c337
push eax
call fcn.00411c50
pop ecx
cmp eax, 1
jne 0x46c3a7
lea eax, [edx + ebx + 1]
mov edx, esi
mov esi, dword [esp + 0xc]
mov ecx, edi
mov ebx, eax
mov dword [esp + 0xac], eax
sub ebx, edi
jb 0x46c2fb
cmp eax, dword [esp + 8]
ja 0x46c2fb
add edx, ebx
mov esi, ecx
xor ecx, ecx
mov edi, edx
mov edx, esi
push 0x5084bc
push 4
lea eax, [esp + 0xc0]
push eax
call fcn.0040b8a8
add esp, 0xc
mov dword [esp + 8], eax
mov eax, edx
mov ecx, edi
mov edx, esi
push eax
push dword [esp + 0xc]
call fcn.0042ca3d
pop ecx
pop edx
test al, al
jne 0x46c61f
mov edx, dword [esp + 0xa4]
jmp 0x46c2de
mov eax, dword [esp + 0xc]
mov edx, esi
mov dword [esp + 0xac], eax
cmp byte [esp + 0xc5], 0
jne 0x46c641
mov byte [esp + 0xc5], 1
cmp byte [esp + 0xc4], 0
je 0x46c3e4
mov eax, dword [esp + 0xbc]
mov ebx, dword [esp + 0xc0]
jmp 0x46c3fa
mov eax, dword [esp + 0xbc]
mov ebx, dword [esp + 0xc0]
cmp ebx, eax
je 0x46c641
add edx, eax
sub ebx, eax
mov ecx, edx
mov edx, ebx
call fcn.004766eb
test eax, eax
je 0x46c641
mov dword [esp + 0x148], eax
mov dword [esp + 0x14c], edx
and dword [esp + 0x150], 0
mov dword [esp + 0x14], eax
xor eax, eax
mov dword [esp + 0xc], edx
inc eax
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1cc], 0x4c8fa8
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x1d4], 0x4c8fbc
push 0xfffffffffffffff0
pop edi
test edi, edi
je 0x46c498
mov eax, dword [esp + edi + 0x1dc]
lea ecx, [esp + 0x148]
push ecx
push dword [esp + edi + 0x1dc]
lea ecx, [esp + 0x1f8]
push ecx
call dword [eax + 0x10]
add esp, 0xc
mov dl, byte [esp + 0x1f0]
cmp dl, 2
jne 0x46c49c
and dword [esp + 0x150], 0
add edi, 8
jmp 0x46c457
mov dl, 2
jmp 0x46c4c8
lea ecx, [esp + 0x1f1]
mov al, byte [ecx + 0x10]
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
mov byte [esp + 0x188], al
movsd qword [esp + 0x180], xmm1
movsd qword [esp + 0x178], xmm0
push 0xfffffffffffffff0
pop edi
mov byte [esp + 8], dl
test edi, edi
je 0x46c500
mov ebx, dword [esp + edi + 0x1d8]
mov esi, dword [esp + edi + 0x1dc]
push ebx
call dword [esi]
add esp, 4
cmp dword [esi + 4], 0
je 0x46c4f7
mov edx, dword [esi + 8]
mov ecx, ebx
call fcn.0040a630
mov dl, byte [esp + 8]
add edi, 8
jmp 0x46c4cf
cmp dl, 2
je 0x46c55d
mov eax, dword [esp + 0x150]
cmp eax, dword [esp + 0x14c]
jne 0x46c55d
mov al, byte [esp + 0x188]
movsd xmm0, qword [esp + 0x178]
movsd xmm1, qword [esp + 0x180]
lea ecx, [esp + 0x469]
mov byte [ecx + 0x10], al
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
mov byte [esp + 0x468], dl
lea ecx, [esp + 0x48]
lea edx, [esp + 0x468]
call fcn.0046aa58
jmp 0x46c2c5
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0xc]
mov byte [esp + 0x468], 2
lea ecx, [esp + 0x178]
mov edx, edi
push esi
call fcn.004100b0
pop eax
cmp byte [esp + 0x178], 2
lea edx, [esp + 0x1f0]
jne 0x46c5dd
mov ecx, esi
call fcn.00435565
mov ebx, edx
mov dword [esp + 8], eax
push esi
push edi
push edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edx, dword [esp + 0x28]
cmp edx, dword [esp + 0x20]
jne 0x46c5bd
lea ecx, [esp + 0x20]
call fcn.00476893
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 8]
imul ecx, edx, 0xc
inc edx
mov dword [eax + ecx], edi
mov dword [eax + ecx + 4], ebx
mov dword [eax + ecx + 8], esi
mov dword [esp + 0x28], edx
jmp 0x46c2c5
mov al, byte [esp + 0x188]
movsd xmm0, qword [esp + 0x178]
movsd xmm1, qword [esp + 0x180]
lea ecx, [esp + 0x1f1]
mov byte [ecx + 0x10], al
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
lea ecx, [esp + 0x48]
mov byte [esp + 0x1f0], 2
call fcn.0046aa58
jmp 0x46c2c5
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0xac]
add edx, ecx
sub ebx, ecx
mov dword [esp + 0xbc], eax
jmp 0x46c3fe
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
movsd xmm0, qword [esp + 0x20]
mov edi, dword [esp + 0x48]
lea ebx, [esp + 0x274]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xa4], ecx
movsd qword [esp + 0x1f8], xmm0
mov ecx, dword [esp + 0x10]
movsd xmm0, qword [esp + 0xa0]
mov dword [esp + 0x200], eax
mov eax, dword [esp + 0x1c]
movsd qword [esp + 0x1f0], xmm0
jmp 0x46c6ae
lea ecx, [esp + 0x1f0]
call fcn.0046aa36
xor eax, eax
xor ecx, ecx
inc eax
mov edi, 0x80000000
mov edx, eax
call fcn.0049eabd
mov ecx, ebx
call fcn.0044913c
movsd xmm0, qword [esp + 0x1f0]
movsd xmm1, qword [esp + 0x1f8]
mov eax, dword [esp + 0x200]
lea esi, [esp + 0x248]
mov dword [esi + 0x2c], edi
movsd qword [esi + 0x30], xmm0
movsd qword [esi + 0x38], xmm1
mov dword [esi + 0x40], eax
push 0x11
pop ecx
lea edi, [esp + 0xa0]
rep movsd dword es:[edi], dword [esi]
mov edx, dword [esp + 0x80]
cmp edx, dword [esp + 0x78]
jne 0x46c713
lea esi, [esp + 0x78]
mov ecx, esi
call fcn.004699bb
mov edx, dword [esi + 8]
imul edi, edx, 0x44
add edi, dword [esp + 0x7c]
push 0x11
pop ecx
lea esi, [esp + 0xa0]
inc edx
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x80], edx
push 0x14
pop ecx
push 4
pop edx
call fcn.0048e46f
xor esi, esi
inc esi
mov dword [eax], esi
mov dword [eax + 4], esi
movsd xmm0, qword [esp + 0x78]
movsd qword [eax + 8], xmm0
mov ecx, dword [esp + 0x80]
mov dword [eax + 0x10], ecx
mov dword [esp + 0x90], eax
cmp byte [esp + 0x44b], 0
jne 0x46d848
push 8
pop ecx
push 4
pop edx
call fcn.0048e46f
mov dword [eax + 4], esi
mov dword [eax], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], 0x4dd0ec
mov esi, dword [esp + 0x408]
test esi, esi
je 0x46c7b5
mov ebx, dword [esp + 0x40c]
lea edi, [esp + 0x70]
mov ecx, edi
call fcn.0044755d
mov dword [edi], esi
mov dword [edi + 4], ebx
mov edi, esi
mov dword [esp + 8], ebx
jmp 0x46c7bf
mov edi, eax
mov dword [esp + 8], 0x4dd0ec
lea ecx, [esp + 0x3e8]
mov eax, dword [ecx + 0xc]
test eax, eax
mov dword [esp + 0x88], eax
je 0x46c892
movsd xmm1, qword [ecx + 0x10]
movsd xmm0, qword [ecx + 0x18]
movsd xmm2, qword [ecx]
movsd qword [esp + 0x258], xmm1
movsd xmm1, qword [ecx + 8]
movsd qword [esp + 0x260], xmm0
movsd qword [esp + 0x248], xmm2
movsd qword [esp + 0x250], xmm1
push 0x28
pop ecx
push 8
pop edx
call fcn.0048e46f
mov ebx, eax
xor eax, eax
inc eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
movsd xmm0, qword [esp + 0x248]
movsd xmm1, qword [esp + 0x250]
movsd qword [ebx + 8], xmm0
movsd qword [ebx + 0x10], xmm1
movsd xmm0, qword [esp + 0x258]
movsd qword [ebx + 0x18], xmm0
movsd xmm0, qword [esp + 0x260]
movsd qword [ebx + 0x20], xmm0
push 0x14
pop ecx
push 4
pop edx
call fcn.0048e46f
mov edx, dword [esp + 8]
xor ecx, ecx
mov dword [esp + 8], 0x4dd0fc
inc ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], edi
mov edi, eax
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], ebx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], 0x4dd0fc
mov dword [esp + 0x8c], esi
lock inc dword [edi]
jle 0x46d82a
lea esi, [esp + 0x408]
push 8
pop edx
mov ecx, 0x88
call fcn.0048e46f
xor ecx, ecx
xor ebx, ebx
inc ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov ecx, 0x3b9aca00
and dword [eax + 8], 0
mov dword [eax + 0x18], ecx
mov dword [eax + 0x28], ecx
and dword [eax + 0x30], 0
and dword [eax + 0x38], 0
mov dword [eax + 0x48], ecx
lea ecx, [esp + 0x94]
and dword [eax + 0x54], 0
and dword [eax + 0x50], 0
mov dword [eax + 0x58], 0x11e1a300
mov dword [eax + 0x60], 0x80000000
mov word [eax + 0x6c], 1
mov byte [eax + 0x72], bl
and word [eax + 0x83], 0
mov dword [ecx], eax
mov eax, dword [esp + 8]
mov dword [ecx + 4], edi
mov dword [ecx + 8], eax
mov eax, esi
mov esi, dword [esi - 0x7c]
mov edi, dword [eax - 0x80]
lea eax, [esp + 0x410]
mov eax, dword [eax - 0x80]
mov dword [esp + 8], eax
call fcn.0044faf8
mov ecx, dword [esp + 8]
mov dword [eax + 0x3c], esi
mov dword [eax + 0x38], edi
lea edx, [esp + 0x438]
mov dword [eax + 0x40], ecx
lea ecx, [esp + 0x250]
mov al, byte [edx + 4]
and dword [ecx - 8], 0
mov word [ecx + 0x10], 0x501
and dword [ecx], 0
mov dword [ecx + 4], 4
and dword [ecx + 8], 0
mov byte [ecx + 0xd], bl
mov edi, dword [edx - 0xc]
xor al, 1
mov dword [esp + 0x14], edi
mov byte [ecx + 0xc], al
mov al, byte [edx + 5]
mov byte [ecx + 0xe], al
mov al, byte [edx + 9]
xor al, 1
mov byte [ecx + 0xf], al
mov eax, dword [edx - 0x10]
mov ecx, dword [edx - 8]
mov dword [esp + 0xc], eax
lea eax, [edi + ecx*4]
shl ecx, 2
mov dword [esp + 0x10], eax
push 4
pop eax
test ecx, ecx
je 0x46c9df
mov esi, dword [edi]
cmp ebx, dword [esp + 0x250]
jne 0x46c9cc
mov dword [esp + 8], ecx
lea ecx, [esp + 0x250]
mov edx, ebx
call fcn.00432b76
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x254]
mov ebx, dword [esp + 0x258]
mov dword [eax + ebx*4], esi
inc ebx
add edi, 4
add ecx, 0xfffffffc
mov dword [esp + 0x258], ebx
jmp 0x46c999
mov edx, dword [esp + 0x10]
mov ecx, edi
sub edx, edi
shr edx, 2
call fcn.00469695
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
call fcn.0048ecd2
mov al, byte [esp + 0x45f]
cmp al, 4
je 0x46ca1e
movzx ecx, al
call fcn.0046a5eb
cmp al, 5
je 0x46d884
mov byte [esp + 0x260], al
mov al, byte [esp + 0x460]
cmp al, 4
je 0x46ca40
movzx ecx, al
call fcn.0046a5eb
cmp al, 5
je 0x46d88b
mov byte [esp + 0x261], al
mov cl, byte [esp + 0x25c]
mov dl, byte [esp + 0x25d]
mov eax, dword [esp + 0x248]
mov esi, dword [esp + 0x24c]
mov ebx, dword [esp + 0x90]
mov byte [esp + 0x3c], cl
mov cl, byte [esp + 0x25e]
mov byte [esp + 0x38], dl
mov dl, byte [esp + 0x25f]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], eax
mov esi, dword [esp + 0x258]
mov byte [esp + 0x68], cl
mov cl, byte [esp + 0x260]
mov byte [esp + 0x34], dl
mov dl, byte [esp + 0x261]
mov byte [esp + 0x30], cl
mov ecx, dword [esp + 0x254]
mov byte [esp + 0x6c], dl
mov dword [esp + 8], ecx
lock inc dword [ebx]
jle 0x46d82a
lea edx, [esp + 0xa0]
lea edi, [esp + 0x330]
and dword [edx + 0xc], 0
and dword [edx + 8], 0
and dword [edx], 0
mov ecx, edi
mov dword [edx + 4], 0x46
call fcn.00415b11
lea ecx, [esp + 0x468]
mov edx, eax
call fcn.004262e0
movzx eax, byte [edi + 0x11e]
mov ecx, dword [esp + 0x10]
movsd xmm0, qword [edi + 0x123]
mov edx, dword [edi + 0x11f]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x174], ebx
mov dword [esp + 0x58], eax
mov eax, dword [edi + 0x12b]
test ecx, ecx
mov dword [esp + 0x5c], edx
movsd qword [esp + 0x20], xmm0
mov dword [esp + 0x28], eax
mov al, byte [edi + 0x112]
mov byte [esp + 0x64], al
mov al, byte [edi + 0x11a]
mov byte [esp + 0x60], al
je 0x46cb53
push dword [esp + 0xc]
call dword [sym.imp.crypt32.dll_CertDuplicateCertificateContext]
mov dword [esp + 0x44], eax
jmp 0x46cb5b
mov dword [esp + 0x1c], 0
push 0
push 0
push 0
push 0
push 2
call dword [sym.imp.crypt32.dll_CertOpenStore]
test eax, eax
mov dword [esp + 0xc], eax
je 0x46d875
shl esi, 2
test esi, esi
je 0x46cbd9
mov eax, dword [esp + 8]
mov edx, dword [esp + 0xc]
lea ecx, [esp + 0xa0]
push dword [eax]
call fcn.00476ad5
pop eax
cmp byte [esp + 0xa0], 4
jne 0x46cbb1
mov edi, dword [esp + 0xa4]
and ebx, 0xffffff00
or ebx, 4
jmp 0x46cbbf
mov ebx, dword [esp + 0xa0]
mov edi, dword [esp + 0xa4]
cmp bl, 4
jne 0x46d711
add dword [esp + 8], 4
push edi
call dword [sym.imp.crypt32.dll_CertFreeCertificateContext]
add esi, 0xfffffffc
jmp 0x46cb7a
mov eax, dword [esp + 0x9c]
movsd xmm0, qword [esp + 0x94]
movsd xmm1, qword [esp + 0x470]
mov dword [esp + 0x150], eax
mov eax, dword [esp + 0x478]
movsd qword [esp + 0x148], xmm0
movsd xmm0, qword [esp + 0x468]
movsd qword [esp + 0x1f8], xmm1
mov dword [esp + 0x200], eax
mov eax, dword [esp + 0x58]
movsd qword [esp + 0x1f0], xmm0
cmp eax, 2
je 0x46cc3c
test eax, eax
jne 0x46cc48
mov bl, 1
jmp 0x46cc3e
xor ebx, ebx
mov dword [esp + 8], 0
jmp 0x46cc6a
mov eax, dword [esp + 0x28]
movsd xmm0, qword [esp + 0x20]
xor ebx, ebx
mov dword [esp + 0xa8], eax
mov al, 1
movsd qword [esp + 0xa0], xmm0
mov dword [esp + 8], eax
mov eax, dword [esp + 0xa8]
movsd xmm0, qword [esp + 0xa0]
lea esi, [esp + 0x148]
mov ecx, esi
mov dword [esp + 0x1d0], eax
movsd qword [esp + 0x1c8], xmm0
call fcn.0044faf8
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 8]
mov byte [eax + 0x65], bl
mov dword [eax + 0x66], ecx
mov byte [eax + 0x6a], dl
mov dword [eax + 0x6b], ecx
movsd xmm0, qword [esp + 0x1c8]
movsd qword [eax + 0x6f], xmm0
mov ecx, dword [esp + 0x1d0]
mov dword [eax + 0x77], ecx
mov ecx, esi
call fcn.0044faf8
mov bl, byte [esp + 0x60]
mov ecx, esi
mov byte [eax + 0x7b], bl
call fcn.0044faf8
mov byte [eax + 0x64], 0
lea ecx, [esp + 0x248]
movsd xmm0, qword [esi]
mov eax, dword [esi + 8]
movsd xmm1, qword [esp + 0x1f8]
movsd qword [esp + 0x48], xmm0
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x200]
movsd xmm0, qword [esp + 0x1f0]
movsd qword [esp + 0xac], xmm1
mov dword [esp + 0xb4], eax
movsd qword [esp + 0xa4], xmm0
movsd xmm0, qword [esp + 0xb0]
movsd xmm2, qword [esp + 0xa8]
movsd xmm1, qword [esp + 0xa0]
movsd qword [esp + 0x1b4], xmm0
movsd qword [esp + 0x1ac], xmm2
movsd qword [esp + 0x1a4], xmm1
call fcn.0046a5f6
mov eax, dword [esp + 0xc]
mov cl, byte [esp + 0x68]
mov dl, byte [esp + 0x38]
mov ch, byte [esp + 0x6c]
mov esi, dword [esp + 0x50]
movsd xmm0, qword [esp + 0x48]
mov dword [esp + 0x180], eax
mov byte [esp + 0x184], cl
mov byte [esp + 0x185], dl
mov cl, byte [esp + 0x3c]
mov dl, byte [esp + 0x34]
mov byte [esp + 0x186], cl
mov byte [esp + 0x187], dl
mov cl, byte [esp + 0x30]
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x188], cl
mov byte [esp + 0x189], ch
mov dword [esp + 0x194], esi
movsd qword [esp + 0x18c], xmm0
mov dword [esp + 0x178], edx
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
mov cl, byte [esp + 0x64]
mov dword [esp + 0x17c], esi
mov dword [esp + 0x1bc], edx
mov byte [esp + 0x1c1], bl
mov byte [esp + 0x1c2], cl
lea ecx, [esp + 0x70]
call fcn.0044755d
mov eax, dword [esp + 0x388]
mov ecx, dword [esp + 0x38c]
mov edx, dword [esp + 0x390]
mov dword [esp + 0x198], eax
mov al, byte [esp + 0x43e]
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x1a0], edx
mov byte [esp + 0x1c0], al
push 8
pop ecx
push 4
pop edx
call fcn.0048e46f
xor ebx, ebx
inc ebx
mov dword [eax + 4], ebx
mov dword [eax], ebx
lock inc dword [eax]
jle 0x46d82a
and dword [esp + 0x24c], 0
mov ecx, 0x4d8fc4
mov word [esp + 0x144], 0x101
mov byte [esp + 0x146], 0
mov dword [esp + 0x110], eax
movsd xmm0, qword [esp + 0x248]
mov dword [esp + 0x114], ecx
and dword [esp + 0x120], 0
and dword [esp + 0x128], 0
and dword [esp + 0x130], 0
and dword [esp + 0x13c], 0
movsd qword [esp + 0x134], xmm0
mov byte [esp + 0x140], 2
and dword [esp + 0xa0], 0
and dword [esp + 0xa8], 0
and dword [esp + 0xb4], 0
mov dword [esp + 0xb0], 0x14
and dword [esp + 0xb8], 0
mov dword [esp + 0xc8], 0x3b9aca00
mov dword [esp + 0xd0], 0x500000
mov dword [esp + 0xd4], 0x200000
mov dword [esp + 0xd8], 0x4000
mov dword [esp + 0xdc], 0x100000
and word [esp + 0xe0], 0
mov dword [esp + 0xe8], eax
mov dword [esp + 0xec], ecx
and dword [esp + 0xf0], 0
and dword [esp + 0xfc], 0
mov dword [esp + 0xf8], 0x5a
and dword [esp + 0x100], 0
or dword [esp + 0x108], 0xffffffff
and dword [esp + 0x118], 0
cmp byte [esp + 0x44d], 1
jne 0x46cf7e
mov byte [esp + 0x146], 1
cmp dword [esp + 0x370], 0
je 0x46cf9e
mov eax, dword [esp + 0x374]
mov byte [esp + 0xe0], 0
mov dword [esp + 0xd4], eax
cmp dword [esp + 0x378], 0
je 0x46cfbe
mov eax, dword [esp + 0x37c]
mov byte [esp + 0xe0], 0
mov dword [esp + 0xd0], eax
cmp byte [esp + 0x448], 0
je 0x46cfe3
mov eax, 0xffff
mov byte [esp + 0xe0], 1
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
cmp dword [esp + 0x380], 0
je 0x46cffb
mov eax, dword [esp + 0x384]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x3d0]
cmp eax, 0x3b9aca00
je 0x46d02c
mov ecx, dword [esp + 0x3c8]
mov edx, dword [esp + 0x3cc]
mov dword [esp + 0xc4], edx
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x3e0]
cmp eax, 0x3b9aca00
je 0x46d05d
mov ecx, dword [esp + 0x3d8]
mov edx, dword [esp + 0x3dc]
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb8], eax
cmp byte [esp + 0x449], 0
lea esi, [esp + 0xf0]
je 0x46d076
mov byte [esp + 0xe1], 1
push 8
pop ecx
push 4
pop edx
call fcn.0048e46f
mov ecx, esi
mov edi, eax
mov dword [eax + 4], ebx
mov dword [eax], ebx
call fcn.004474a8
mov eax, dword [esp + 0x398]
mov ecx, dword [esp + 0x39c]
mov dword [esp + 0xf0], edi
mov dword [esp + 0xf4], 0x4db840
mov edx, dword [esp + 0x3a0]
mov esi, dword [esp + 0x3a8]
mov edi, dword [esp + 0x3ac]
mov ebx, dword [esp + 0x3b0]
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x434]
mov dword [esp + 0xfc], ecx
lea ecx, [esp + 0x18c]
mov dword [esp + 0x100], edx
mov dword [esp + 0x108], eax
call fcn.0044faf8
mov dword [eax + 0xc], edi
mov dword [eax + 8], esi
mov dword [eax + 0x10], ebx
cmp byte [esp + 0x443], 0
je 0x46d115
mov byte [esp + 0x138], 1
cmp byte [esp + 0x444], 0
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x14]
je 0x46d12f
mov byte [esp + 0x13e], 1
cmp byte [esp + 0x445], 0
je 0x46d141
mov byte [esp + 0x13a], 1
cmp byte [esp + 0x446], 0
je 0x46d153
mov byte [esp + 0x13d], 1
cmp byte [esp + 0x447], 0
je 0x46d165
mov byte [esp + 0x139], 1
mov esi, dword [eax + 0xc]
imul ebx, dword [eax + 0x10], 0x44
test ebx, ebx
je 0x46d1aa
mov eax, dword [esi]
mov eax, dword [eax*4 + 0x46d8a0]
add eax, edi
jmp eax
mov dword [esp + 8], ebx
push 0x14
pop ecx
lea edi, [esp + 0x468]
lea esi, [esp + 0x178]
rep movsd dword es:[edi], dword [esi]
mov ebx, dword [esp + 0x110]
lock inc dword [ebx]
jle 0x46d82a
mov ecx, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
mov esi, dword [esp + 0x114]
call fcn.00454b63
lea ecx, [esp + 0x144]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov al, byte [ecx + 2]
movzx ecx, word [ecx]
mov byte [esp + 0x96], al
mov word [esp + 0x94], cx
lock inc dword [ebx]
jle 0x46d82a
lea ecx, [esp + 0x1c8]
lea edx, [esp + 0x120]
call fcn.00463f15
lea ecx, [esp + 0x1f0]
lea edx, [esp + 0xa0]
call fcn.00463e80
push 0x10
pop ecx
push 4
pop edx
call fcn.0048e46f
xor edi, edi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x40], eax
inc edi
mov dword [eax], edi
mov dword [eax + 4], edi
mov dword [eax + 8], ebx
mov ebx, dword [esp + 0xc]
mov dword [eax + 0xc], esi
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], 0x4d8fd4
test ebx, ebx
je 0x46d28f
push 0x10
pop ecx
push 4
pop edx
call fcn.0048e46f
mov ecx, dword [esp + 0x10]
mov dword [eax], edi
mov dword [eax + 4], edi
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ecx
jmp 0x46d291
xor eax, eax
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x20], eax
mov dword [esp + 0xc], esi
mov dword [esp + 0x24], 0x4d9064
test ecx, ecx
je 0x46d4ca
lea edi, [esp + 0x248]
mov dword [esp + 0x10], ecx
mov esi, eax
mov ecx, edi
call fcn.0048eba7
lea ebx, [esp + 0x4d8]
mov edx, edi
mov ecx, ebx
call fcn.0044f790
mov eax, dword [ebx + 8]
lea edi, [esp + 0x248]
mov ecx, edi
mov dword [esp + 0x3c], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x38], eax
mov eax, dword [ebx]
mov dword [esp + 0x34], eax
mov eax, dword [ebx + 4]
mov dword [esp + 0x30], eax
call fcn.0048eba7
lea ebx, [esp + 0x4c8]
mov edx, edi
mov ecx, ebx
call fcn.0044f790
mov eax, dword [ebx + 8]
mov dword [esp + 0x6c], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x68], eax
mov eax, dword [ebx]
mov dword [esp + 0x64], eax
mov eax, dword [ebx + 4]
lea ebx, [esp + 0x248]
mov ecx, ebx
mov dword [esp + 0x60], eax
call fcn.0048eba7
lea edi, [esp + 0x4b8]
mov edx, ebx
mov ecx, edi
call fcn.0044f790
mov eax, dword [edi + 8]
movsd xmm0, qword [0x4e1940]
mov dword [esp + 0x5c], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0x58], eax
mov eax, dword [edi]
mov dword [esp + 0x44], eax
mov eax, dword [edi + 4]
movsd qword [ebx + 4], xmm0
movsd xmm0, qword [0x4e1948]
mov edi, dword [esp + 0x100]
movsd qword [ebx + 0xc], xmm0
mov dword [esp + 0x170], eax
movsd xmm0, qword [ebx]
mov eax, dword [ebx + 0x10]
movsd qword [esp + 0x148], xmm0
movsd xmm0, qword [ebx + 8]
mov dword [esp + 0x158], eax
mov eax, dword [esp + 0xf8]
mov ebx, dword [esp + 0xfc]
mov dword [esp + 0x16c], eax
movsd qword [esp + 0x150], xmm0
push 8
pop edx
mov ecx, 0x98
call fcn.0048e46f
mov ecx, eax
xor eax, eax
mov edx, dword [esp + 0x34]
inc eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x16c]
and dword [ecx + 8], 0
mov byte [ecx + 0xc], 0
mov dword [ecx + 0x14], ebx
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x18], edi
mov edi, dword [esp + 0x30]
movsd xmm0, qword [esp + 0x148]
movsd xmm1, qword [esp + 0x150]
movsd qword [ecx + 0x1c], xmm0
movsd qword [ecx + 0x24], xmm1
movsd xmm0, qword [0x4e1940]
movsd xmm1, qword [0x4e1948]
mov eax, dword [esp + 0x158]
mov dword [ecx + 0x2c], eax
mov dword [ecx + 0x34], edi
mov dword [ecx + 0x30], edx
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [ecx + 0x3c], edi
mov dword [ecx + 0x38], edx
mov edi, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
movsd qword [ecx + 0x40], xmm0
movsd qword [ecx + 0x48], xmm1
mov dword [ecx + 0x54], edi
mov dword [ecx + 0x50], edx
mov edi, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
mov dword [ecx + 0x5c], edi
mov dword [ecx + 0x58], edx
mov edi, dword [esp + 0x170]
mov edx, dword [esp + 0x44]
movsd qword [ecx + 0x68], xmm1
movsd qword [ecx + 0x60], xmm0
mov dword [ecx + 0x74], edi
mov dword [ecx + 0x70], edx
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [ecx + 0x7c], edi
mov dword [ecx + 0x78], edx
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x10], ecx
mov dword [ecx + 0x80], edi
mov dword [ecx + 0x84], 0x4d8fd4
mov dword [ecx + 0x88], esi
mov dword [ecx + 0x8c], 0x4d9064
mov dword [ecx + 0x90], edx
and dword [ecx + 0x94], 0
jmp 0x46d4e6
lea ecx, [esp + 0x20]
call fcn.004474a8
lea eax, [esp + 0x48]
push eax
call fcn.00437fc7
pop eax
mov dword [esp + 0x10], 0
movzx eax, word [esp + 0x94]
lea edi, [esp + 0x288]
mov word [esp + 0x20], ax
mov al, byte [esp + 0x96]
mov byte [esp + 0x22], al
push 0x14
pop ecx
lea esi, [esp + 0x468]
rep movsd dword es:[edi], dword [esi]
push 9
pop ecx
lea edi, [esp + 0x148]
lea esi, [esp + 0x1c8]
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x2d8]
push 0x16
pop ecx
lea ebx, [esp + 0x1f0]
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
push 0x10
pop ecx
lea edx, [esp + 0x330]
lea edi, [esp + 0x248]
mov esi, edx
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x410]
mov eax, dword [ecx + 8]
movsd xmm0, qword [ecx]
mov dword [ebx + 0xc], eax
mov al, byte [edx + 0x110]
movsd qword [ebx + 4], xmm0
mov byte [esp + 0x40], al
mov al, byte [edx + 0x11c]
mov byte [esp + 0x3c], al
mov eax, dword [edx + 0x88]
mov dword [esp + 0x38], eax
mov eax, dword [edx + 0x8c]
mov dword [esp + 0x30], eax
mov eax, dword [edx + 0x90]
mov dword [esp + 0x34], eax
push 8
pop edx
mov ecx, 0x150
call fcn.0048e46f
mov ebx, eax
xor eax, eax
inc eax
mov dword [ebx], eax
mov dword [ebx + 4], eax
lea eax, [ebx + 8]
push 0xe8
lea ecx, [esp + 0x24c]
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x1c]
cmp dword [esp + 8], 0
lea edi, [ebx + 0xf8]
mov dword [ebx + 0xf0], eax
mov eax, dword [esp + 0xc]
mov dword [ebx + 0xf4], eax
push 9
pop ecx
lea esi, [esp + 0x148]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x468]
mov eax, dword [esp + 0x10]
mov dword [ebx + 0x11c], eax
movzx eax, word [esp + 0x20]
mov word [ebx + 0x120], ax
mov al, byte [esp + 0x22]
mov byte [ebx + 0x122], al
mov eax, dword [ecx]
mov dword [ebx + 0x123], eax
mov al, byte [ecx + 4]
mov byte [ebx + 0x127], al
mov eax, dword [esp + 0x30]
mov dword [ebx + 0x12c], eax
mov eax, dword [esp + 0x38]
mov dword [ebx + 0x128], eax
mov eax, dword [esp + 0x34]
mov dword [ebx + 0x130], eax
lea eax, [esp + 0x1f0]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, dword [esp + 0x14]
movsd qword [ebx + 0x134], xmm0
movsd qword [ebx + 0x13c], xmm1
mov dword [ebx + 0x144], eax
mov al, byte [esp + 0x40]
mov byte [ebx + 0x148], al
mov al, byte [esp + 0x3c]
setne byte [ebx + 0x149]
mov byte [ebx + 0x14a], al
lea eax, [esp + 0x110]
push eax
call fcn.00437fc7
pop eax
lea ecx, [esp + 0xa0]
call fcn.00447f47
lea ecx, [esp + 0x118]
call fcn.004474a8
lea eax, [esp + 0x330]
cmp dword [eax + 0x108], 0
je 0x46d6d0
lea eax, [esp + 0x438]
push eax
call fcn.00437c38
pop eax
cmp dword [esp + 0x88], 0
mov esi, dword [esp + 0x8c]
jne 0x46d6ed
lea ecx, [esp + 0x3e8]
call fcn.004698f4
test esi, esi
jne 0x46d707
cmp dword [esp + 0x408], 0
je 0x46d707
lea ecx, [esp + 0x408]
call fcn.0044755d
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0xc]
call fcn.00476ac3
cmp dword [esp + 0x10], 0
je 0x46d72b
push dword [esp + 0x44]
call dword [sym.imp.crypt32.dll_CertFreeCertificateContext]
xor esi, esi
cmp bl, 4
je 0x46d73d
mov ecx, ebx
mov edx, edi
call fcn.00437c6e
mov esi, eax
push 0x54
pop ecx
push 4
pop edx
call fcn.0048e46f
mov dword [eax], 2
and word [eax + 0x48], 0
lea ecx, [esp + 0x468]
mov dword [eax + 0x4c], esi
mov ebx, eax
mov dword [eax + 0x50], 0x4d946c
call fcn.00401af5
lea ecx, [esp + 0x174]
call fcn.0044907d
lea ecx, [esp + 0x248]
call fcn.0046a5f6
lea ecx, [esp + 0x94]
call fcn.00449054
lea ecx, [esp + 0x70]
call fcn.0044755d
lea ecx, [esp + 0x90]
call fcn.0044907d
lea edi, [esp + 0x330]
mov ecx, edi
call fcn.00436cbf
lea ecx, [esp + 0x410]
call fcn.004698a9
cmp dword [edi + 0x108], 0
je 0x46d7d5
lea eax, [esp + 0x438]
push eax
call fcn.00437c38
pop eax
cmp dword [esp + 0x88], 0
jne 0x46d7eb
lea ecx, [esp + 0x3e8]
call fcn.004698f4
cmp dword [esp + 0x8c], 0
jne 0x46d80b
cmp dword [esp + 0x408], 0
je 0x46d80b
lea ecx, [esp + 0x408]
call fcn.0044755d
mov dword [esp + 0x330], ebx
push 0xd
pop edx
mov ecx, 0x4dd232
push 0x4dd240
push 0x4da8f8
push edi
call fcn.004a05e0
ud2
push 0x17
pop edx
mov ecx, str.size_overflows_MAX_SIZE
push 0x4dab7c
push 0x4da8d8
lea eax, [esp + 0x20]
push eax
call fcn.004a05e0
lea ecx, [esp + 0x248]
lea eax, [esp + 0x18]
mov edx, 0x4dd1d4
mov dword [ecx], 0x4dd1cc
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], eax
and dword [ecx + 0xc], 0
call fcn.004a0200
xor ebx, ebx
call dword [sym.imp.kernel32.dll_GetLastError]
mov edi, eax
jmp 0x46d71a
mov ecx, str.invalid_minimum_TLS_version_for_backendinvalid_maximum_TLS_version_for_backendClient::new__
jmp 0x46d890
mov ecx, 0x4dd20b
push 0x27
pop edx
call fcn.0046a49c
mov ebx, eax
jmp 0x46d777