Function at 0x446200
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push ecx
imul eax, dword [0x472298], 0x138
push ebx
mov ebx, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
push eax
call ebx
add esp, 4
mov dword [0x474fc4], eax
test eax, eax
je 0x446692
mov eax, dword [0x472298]
push esi
push edi
mov edi, dword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
push str.MQTT_C_CLIENT_TRACE
mov dword [0x474fc8], eax
call edi
mov esi, eax
add esp, 4
test esi, esi
je 0x446383
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x446253
sub ecx, edx
je 0x446383
mov ecx, 0x461288
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x446290
test dl, dl
je 0x44628c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x446290
add eax, 2
add ecx, 2
test dl, dl
jne 0x446270
xor eax, eax
jmp 0x446295
sbb eax, eax
or eax, 1
test eax, eax
je 0x446373
push 0x45ad48
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen]
add esp, 8
mov dword [0x474fcc], eax
test eax, eax
je 0x446373
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4462c0
sub ecx, edx
lea eax, [ecx + 1]
push eax
call ebx
mov edx, eax
add esp, 4
mov dword [0x474fd0], edx
test edx, edx
jne 0x4462f7
push dword [0x474fc4]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, esi
sub edx, esi
nop dword [eax + eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x446300
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x446310
sub esi, ecx
add esi, 3
push esi
call ebx
add esp, 4
mov dword [0x474fd4], eax
test eax, eax
jne 0x44634e
push dword [0x474fc4]
mov esi, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
call esi
push dword [0x474fd0]
call esi
add esp, 8
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [0x474fd0]
push str._s.0
push esi
push eax
call fcn.00440af0
add esp, 0x10
cmp eax, esi
jb 0x446383
mov eax, dword [0x474fd4]
mov byte [eax + esi - 1], 0
jmp 0x446383
push 1
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
mov dword [0x474fcc], eax
push str.MQTT_C_CLIENT_TRACE_MAX_LINES
call edi
mov edx, eax
add esp, 4
test edx, edx
je 0x4463bc
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x446398
sub ecx, esi
je 0x4463bc
push edx
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
add esp, 4
mov ecx, 0x3e8
test eax, eax
cmovle eax, ecx
mov dword [0x4722a4], eax
push str.MQTT_C_CLIENT_TRACE_LEVEL
call edi
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x446625
mov edx, ecx
lea esi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x4463d5
sub edx, esi
je 0x446625
mov edx, str.MAXIMUM
mov eax, ecx
nop dword [eax + eax]
mov bl, byte [eax]
cmp bl, byte [edx]
jne 0x446410
test bl, bl
je 0x44640c
mov bl, byte [eax + 1]
cmp bl, byte [edx + 1]
jne 0x446410
add eax, 2
add edx, 2
test bl, bl
jne 0x4463f0
xor eax, eax
jmp 0x446415
sbb eax, eax
or eax, 1
test eax, eax
je 0x44661b
mov edx, str.TRACE_MAXIMUM
mov eax, ecx
mov bl, byte [eax]
cmp bl, byte [edx]
jne 0x446444
test bl, bl
je 0x446440
mov bl, byte [eax + 1]
cmp bl, byte [edx + 1]
jne 0x446444
add eax, 2
add edx, 2
test bl, bl
jne 0x446424
xor eax, eax
jmp 0x446449
sbb eax, eax
or eax, 1
test eax, eax
je 0x44661b
mov edx, str.MEDIUM
mov eax, ecx
mov bl, byte [eax]
cmp bl, byte [edx]
jne 0x446478
test bl, bl
je 0x446474
mov bl, byte [eax + 1]
cmp bl, byte [edx + 1]
jne 0x446478
add eax, 2
add edx, 2
test bl, bl
jne 0x446458
xor eax, eax
jmp 0x44647d
sbb eax, eax
or eax, 1
test eax, eax
je 0x44660f
mov edx, str.TRACE_MEDIUM
mov eax, ecx
nop dword [eax]
mov bl, byte [eax]
cmp bl, byte [edx]
jne 0x4464b0
test bl, bl
je 0x4464ac
mov bl, byte [eax + 1]
cmp bl, byte [edx + 1]
jne 0x4464b0
add eax, 2
add edx, 2
test bl, bl
jne 0x446490
xor eax, eax
jmp 0x4464b5
sbb eax, eax
or eax, 1
test eax, eax
je 0x44660f
mov edx, str.MINIMUM
mov eax, ecx
mov bl, byte [eax]
cmp bl, byte [edx]
jne 0x4464e4
test bl, bl
je 0x4464e0
mov bl, byte [eax + 1]
cmp bl, byte [edx + 1]
jne 0x4464e4
add eax, 2
add edx, 2
test bl, bl
jne 0x4464c4
xor eax, eax
jmp 0x4464e9
sbb eax, eax
or eax, 1
test eax, eax
je 0x446603
mov edx, str.TRACE_MINIMUM
mov eax, ecx
mov bl, byte [eax]
cmp bl, byte [edx]
jne 0x446518
test bl, bl
je 0x446514
mov bl, byte [eax + 1]
cmp bl, byte [edx + 1]
jne 0x446518
add eax, 2
add edx, 2
test bl, bl
jne 0x4464f8
xor eax, eax
jmp 0x44651d
sbb eax, eax
or eax, 1
test eax, eax
je 0x446603
mov edx, str.PROTOCOL
mov eax, ecx
nop dword [eax]
mov bl, byte [eax]
cmp bl, byte [edx]
jne 0x446550
test bl, bl
je 0x44654c
mov bl, byte [eax + 1]
cmp bl, byte [edx + 1]
jne 0x446550
add eax, 2
add edx, 2
test bl, bl
jne 0x446530
xor eax, eax
jmp 0x446555
sbb eax, eax
or eax, 1
test eax, eax
je 0x4465f7
mov edx, str.TRACE_PROTOCOL
mov eax, ecx
mov bl, byte [eax]
cmp bl, byte [edx]
jne 0x446584
test bl, bl
je 0x446580
mov bl, byte [eax + 1]
cmp bl, byte [edx + 1]
jne 0x446584
add eax, 2
add edx, 2
test bl, bl
jne 0x446564
xor eax, eax
jmp 0x446589
sbb eax, eax
or eax, 1
test eax, eax
je 0x4465f7
mov edx, str.ERROR
mov eax, ecx
mov bl, byte [eax]
cmp bl, byte [edx]
jne 0x4465b4
test bl, bl
je 0x4465b0
mov bl, byte [eax + 1]
cmp bl, byte [edx + 1]
jne 0x4465b4
add eax, 2
add edx, 2
test bl, bl
jne 0x446594
xor eax, eax
jmp 0x4465b9
sbb eax, eax
or eax, 1
test eax, eax
je 0x4465eb
mov eax, str.TRACE_ERROR
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x4465e2
test dl, dl
je 0x4465de
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x4465e2
add ecx, 2
add eax, 2
test dl, dl
jne 0x4465c2
xor eax, eax
jmp 0x4465e7
sbb eax, eax
or eax, 1
test eax, eax
jne 0x446625
mov dword [0x4722a8], 5
jmp 0x446625
mov dword [0x4722a8], 4
jmp 0x446625
mov dword [0x472294], 3
jmp 0x446625
mov dword [0x472294], 2
jmp 0x446625
mov dword [0x472294], 1
push 0x461348
push 3
call fcn.004466a0
push str.___________________Trace_Output
push 3
call fcn.004466a0
mov esi, dword [ebp + 8]
add esp, 0x10
test esi, esi
je 0x446681
mov eax, dword [esi]
test eax, eax
je 0x446681
nop dword [eax]
push dword [esi + 4]
push eax
push str._s:__s
push 0x200
push 0x474fe8
call fcn.00440af0
push 0x474fe8
push 3
call fcn.004466a0
mov eax, dword [esi + 8]
lea esi, [esi + 8]
add esp, 0x1c
test eax, eax
jne 0x446650
push 0x461348
push 3
call fcn.004466a0
add esp, 8
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret