Function at 0x61c390
Capabilities:
Query environment variable

Disassembly:
mov eax, dword [0x947660]
test eax, eax
je 0x61c3a0
repz ret
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
mov dword [0x947660], 1
mov dword [esp + 8], 0x30
mov dword [esp + 4], 0x947600
mov dword [esp], str.OPENSSL_ia32cap
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
sub eax, 1
sub esp, 0xc
cmp eax, 0x2e
ja 0x61c4e4
movzx ebp, word [0x947600]
xor eax, eax
mov edi, 0xa
cmp bp, 0x7e
sete al
add eax, eax
cmp word [eax + 0x947600], 0x30
lea esi, [eax + 0x947600]
je 0x61c640
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov word [esp + 0x18], bp
jmp 0x61c452
sub ebp, 0x30
cmp edi, ebp
jbe 0x61c485
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov ebx, edx
imul ebx, edi
mul edi
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x10]
mov ecx, eax
mov eax, ebp
add ebx, edx
xor edx, edx
add eax, ecx
adc edx, ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
add esi, 2
movzx ebp, word [esi - 2]
mov dword [esp + 4], 4
mov dword [esp], ebp
call sym._ossl_ctype_check
test eax, eax
jne 0x61c420
mov dword [esp + 4], 0x10
mov dword [esp], ebp
call sym._ossl_ctype_check
test eax, eax
jne 0x61c514
movzx ebp, word [esp + 0x18]
cmp bp, 0x7e
je 0x61c524
movzx eax, word [0x947600]
cmp ax, 0x3a
je 0x61c680
test ax, ax
je 0x61c4c6
mov eax, 0x947600
jmp 0x61c4bb
cmp dx, 0x3a
je 0x61c580
add eax, 2
movzx edx, word [eax]
test dx, dx
jne 0x61c4b1
mov dword [0x949230], 0
mov dword [0x949234], 0
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
jmp 0x61c4fc
mov dword [esp], 0x949228
call sym._OPENSSL_ia32_cpuid
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov esi, eax
mov edi, edx
mov eax, esi
mov dword [0x94922c], edi
or ah, 4
mov dword [0x949228], eax
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], ebp
call sym._ossl_tolower
lea ebp, [eax - 0x57]
jmp 0x61c423
mov dword [esp], 0x949228
call sym._OPENSSL_ia32_cpuid
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov ebx, esi
mov ecx, edi
not ebx
not ecx
and ebx, eax
mov eax, esi
and ecx, edx
and eax, 0x1000000
test eax, eax
je 0x61c6c1
and ecx, 0xedfff7fd
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ecx
movzx eax, word [0x947600]
test ax, ax
je 0x61c4c6
cmp ax, 0x3a
jne 0x61c4aa
mov eax, 0x947600
movzx esi, word [eax + 2]
xor edx, edx
cmp si, 0x7e
mov word [esp + 0x1e], si
sete dl
lea esi, [eax + edx*2 + 2]
cmp word [esi], 0x30
je 0x61c6a0
mov dword [esp + 0x18], 0xa
xor edi, edi
xor ebp, ebp
jmp 0x61c5cf
cmp dword [esp + 0x18], ecx
jbe 0x61c601
mov eax, edi
mov ebx, dword [esp + 0x18]
mul dword [esp + 0x18]
imul ebx, ebp
add edx, ebx
xor ebx, ebx
add ecx, eax
adc ebx, edx
mov edi, ecx
mov ebp, ebx
add esi, 2
movzx ebx, word [esi - 2]
mov dword [esp + 4], 4
mov dword [esp], ebx
call sym._ossl_ctype_check
test eax, eax
lea ecx, [ebx - 0x30]
jne 0x61c5b0
mov dword [esp + 4], 0x10
mov dword [esp], ebx
call sym._ossl_ctype_check
test eax, eax
jne 0x61c630
cmp word [esp + 0x1e], 0x7e
mov edx, edi
mov eax, ebp
je 0x61c660
mov dword [0x949230], edi
mov dword [0x949234], ebp
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
jmp 0x61c4fc
mov dword [esp], ebx
call sym._ossl_tolower
lea ecx, [eax - 0x57]
jmp 0x61c5b0
movzx eax, word [esi + 2]
mov dword [esp], eax
call sym._ossl_tolower
cmp eax, 0x78
je 0x61c6d0
add esi, 2
mov edi, 8
jmp 0x61c408
not edx
not eax
and dword [0x949230], edx
and dword [0x949234], eax
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
jmp 0x61c4fc
mov dword [esp], 0x949228
call sym._OPENSSL_ia32_cpuid
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
jmp 0x61c561
movzx eax, word [esi + 2]
mov dword [esp], eax
call sym._ossl_tolower
cmp eax, 0x78
je 0x61c6dd
add esi, 2
mov dword [esp + 0x18], 8
jmp 0x61c5a8
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ecx
jmp 0x61c561
add esi, 4
mov edi, 0x10
jmp 0x61c408
add esi, 4
mov dword [esp + 0x18], 0x10
jmp 0x61c5a8