Function at 0x40c2c1
Capabilities:
Query environment variable

Disassembly:
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x50
lea rdx, [0x0041bac0]
lea rcx, [0x0041bae0]
call fcn.00406ac8
mov rbx, rax
test rax, rax
jne 0x40c39e
mov rcx, qword [0x0041c6e0]
mov edx, 0x38
lea r14, str.LibraryError
call fcn.00403af4
mov ecx, 0x2b
mov r12, rax
mov rax, qword [0x0041c6c0]
mov qword [r12 + 0x10], r14
mov qword [r12], rax
call fcn.00403d49
lea rdx, [0x0041baa0]
mov r13, rax
mov rcx, rax
call fcn.00401e8b
lea rdx, [0x0041bae0]
mov rcx, r13
call fcn.00401e8b
lea rdx, [0x0041ba70]
mov rcx, r13
call fcn.00401e8b
lea rdx, [0x0041bac0]
mov rcx, r13
call fcn.00401e8b
lea rcx, [r12 + 0x18]
mov rdx, r13
call fcn.00402f2a
lea rcx, [r12 + 8]
xor edx, edx
call fcn.00402f2a
lea r9, str.openssl.nim
mov rdx, r14
mov rcx, r12
mov qword [rsp + 0x20], 0x16f
lea r8, str.loadPSSLMethod
call fcn.00404e94
call rbx
mov rcx, rax
mov rax, qword [0x0041c580]
call qword [rax]
mov rcx, qword [0x0041c780]
mov rsi, rax
mov rax, qword [0x0041c5b0]
mov rbx, qword [rax]
call fcn.00401ce0
mov rcx, rsi
mov rdx, rax
call rbx
dec eax
jne 0x40c3df
call fcn.00406d7d
cmp eax, 0xdfffffff
je 0x40c3e8
jmp 0x40c414
xor ecx, ecx
call fcn.00406dcb
jmp 0x40c3d1
mov rcx, qword [0x0041c780]
call fcn.00401ce0
cmp qword [0x004363c0], 0
mov r12, rax
je 0x40c429
mov rcx, rsi
mov rdx, r12
call qword [0x004363c0]
xor ecx, ecx
call fcn.00406dcb
call fcn.00406d7d
mov rbx, qword [0x0041c640]
cmp eax, 0x100fffff
jbe 0x40c465
jmp 0x40c459
xor edx, edx
lea rcx, [0x0041ba40]
call fcn.00406ac8
test rax, rax
je 0x40c445
mov qword [0x004363c0], rax
jmp 0x40c401
lea rcx, [0x0041ba40]
call fcn.00401ce0
mov rcx, rax
call fcn.00406623
call fcn.00406d7d
cmp eax, 0x20000000
jne 0x40c483
xor r9d, r9d
mov r8d, 1
mov edx, 0x5e
mov rcx, rsi
call qword [rbx]
dec eax
je 0x40c483
xor ecx, ecx
call fcn.00406dcb
mov rax, qword [0x0041c5a0]
xor r8d, r8d
mov edx, 1
mov rcx, rsi
call qword [rax]
test rsi, rsi
jne 0x40c4a3
xor ecx, ecx
call fcn.00406dcb
xor r9d, r9d
mov edx, 0x21
mov rcx, rsi
mov edi, 0x104
mov r8d, 4
lea r13, [0x0041b9e0]
call qword [rbx]
mov edx, 0x104
lea rcx, [0x0041b9e0]
call fcn.00403b1e
mov r14, qword [0x0041c520]
mov r12, rax
jmp 0x40c4ec
mov rcx, r13
mov edi, ebx
call fcn.00403b1e
mov r12, rax
mov r8d, edi
mov rdx, r12
xor ecx, ecx
call qword [r14]
mov ebx, eax
test eax, eax
je 0x40c511
movsxd rdx, eax
cmp edi, eax
jl 0x40c4df
mov rcx, r12
call fcn.0040ae6c
mov r12, rax
jmp 0x40c514
xor r12d, r12d
lea r14, [rsp + 0x38]
mov edx, 0x18
lea r15, [rsp + 0x40]
mov rcx, r14
lea rdi, [rsp + 0x48]
call fcn.00401eb9
xor edx, edx
mov rcx, r14
call fcn.0040401e
xor edx, edx
mov rcx, r15
call fcn.0040401e
xor edx, edx
mov rcx, rdi
call fcn.0040401e
test r12, r12
je 0x40c62a
mov rax, qword [r12]
xor r13d, r13d
lea rdx, [rax - 1]
mov rbx, rdx
test rbx, rbx
js 0x40c62a
mov al, byte [r12 + rbx + 0x10]
cmp al, 0x5c
je 0x40c594
cmp al, 0x2f
je 0x40c58a
test rbx, rbx
je 0x40c5bb
cmp al, 0x2e
jne 0x40c622
jmp 0x40c601
cmp al, 0x5c
je 0x40c594
xor edx, edx
cmp al, 0x2f
jne 0x40c5bd
xor r8d, r8d
test rbx, rbx
je 0x40c5a0
lea r8, [rbx - 1]
xor edx, edx
mov rcx, r12
call fcn.00405d88
mov rcx, r14
mov rdx, rax
call fcn.0040401e
lea rdx, [rbx + 1]
jmp 0x40c5bd
xor edx, edx
cmp rbx, r13
jl 0x40c5d2
mov rcx, r12
call fcn.00405df2
mov rcx, r15
mov rdx, rax
jmp 0x40c5fa
lea r8, [r13 - 1]
mov rcx, r12
call fcn.00405d88
mov rcx, r15
mov rdx, rax
call fcn.0040401e
mov rdx, r13
mov rcx, r12
call fcn.00405df2
mov rcx, rdi
mov rdx, rax
call fcn.0040401e
jmp 0x40c62a
cmp rdx, rbx
jle 0x40c622
mov al, byte [r12 + rbx + 0xf]
cmp al, 0x5c
je 0x40c622
cmp al, 0x2f
je 0x40c622
cmp byte [r12 + rbx + 0x11], 0x2e
je 0x40c622
test r13, r13
cmove r13, rbx
dec rbx
jmp 0x40c565
mov rcx, qword [rsp + 0x38]
call fcn.00405e04
mov rcx, rax
call fcn.0040a9eb
mov rcx, rax
mov r12, rax
call fcn.0040670e
test al, al
jne 0x40c67d
lea rcx, [0x0041bb40]
call fcn.00401ce0
mov rcx, rax
call sub.msvcrt.dll_getenv
mov r12, rax
test rax, rax
je 0x40c672
mov rcx, rax
call fcn.00403a9e
mov r12, rax
mov r13, qword [0x0041c590]
xor edx, edx
jmp 0x40c6d0
mov rax, qword [0x0041c590]
mov rcx, r12
mov rbx, qword [rax]
call fcn.00401ce0
xor r8d, r8d
mov rcx, rsi
mov rdx, rax
call rbx
dec eax
jne 0x40c74c
jmp 0x40c7d0
cmp rdx, rax
jg 0x40c74c
mov rbx, rdx
cmp rax, rbx
jne 0x40c6dd
mov rcx, r12
lea r8, [rbx - 1]
call fcn.00405d88
mov rcx, rax
test rax, rax
jne 0x40c6ea
lea rdx, [rbx + 1]
xor eax, eax
test r12, r12
je 0x40c6a7
mov rax, qword [r12]
jmp 0x40c6a7
cmp byte [r12 + rbx + 0x10], 0x3b
je 0x40c6b8
inc rbx
jmp 0x40c6b3
mov r8, qword [rax]
test r8, r8
je 0x40c6cc
cmp byte [rax + 0x10], 0x22
jne 0x40c700
cmp byte [rax + r8 + 0xf], 0x22
je 0x40c707
call fcn.00405e04
jmp 0x40c715
sub r8, 2
mov edx, 1
call fcn.00405d88
mov rcx, rax
call fcn.0040a9eb
mov rcx, rax
mov r14, rax
call fcn.0040670e
test al, al
je 0x40c6cc
mov rcx, r14
mov rdi, qword [r13]
call fcn.00401ce0
xor r8d, r8d
mov rcx, rsi
mov rdx, rax
call rdi
dec eax
jne 0x40c6cc
jmp 0x40c7d0
mov rcx, qword [0x0041c6d0]
mov edx, 0x30
call fcn.00403af4
lea rcx, [0x0041bb00]
mov r12, rax
mov rax, qword [0x0041c690]
mov r13, qword [r12 + 0x18]
mov qword [r12], rax
lea rax, str.IOError
mov qword [r12 + 0x10], rax
call fcn.00403ce2
mov qword [r12 + 0x18], rax
test r13, r13
jne 0x40c7c6
lea rcx, [r12 + 8]
xor edx, edx
call fcn.00402f2a
lea r9, str.net.nim
lea r8, str.newContext
mov rcx, r12
mov qword [rsp + 0x20], 0x2a9
lea rdx, str.IOError
call fcn.00404e94
jmp 0x40c7d0
mov rcx, r13
call fcn.00402f7f
jmp 0x40c792
mov rcx, qword [0x0041c710]
mov edx, 0x20
call fcn.00403af4
xor edx, edx
mov qword [rax], rsi
lea r13, [rax + 8]
mov r12, rax
mov rcx, r13
call fcn.0040401e
mov ecx, 0x64
mov qword [r12 + 0x10], 0
call fcn.00406410
mov rcx, qword [0x0041c6a0]
mov rdx, rax
call fcn.0040553e
mov rcx, r13
mov rdx, rax
call fcn.0040401e
mov rcx, qword [0x0041c730]
mov edx, 0x28
call fcn.00403af4
lea rcx, [r12 + 0x18]
mov rdx, rax
mov rax, qword [0x0041c720]
mov qword [rdx], rax
call fcn.00402f2a
mov rax, r12
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret