Function at 0x406500
Capabilities:
Set environment variable

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
push eax
mov eax, 0x4020
call fcn.004246d8
sub esp, eax
mov eax, dword [esp + eax]
mov esi, dword [eax]
test esi, esi
je 0x406600
mov ebx, dword [edx]
mov esi, edx
test ebx, ebx
je 0x406600
mov edi, eax
call dbg.WCMD_popoperator
test byte [0x425010], 8
mov ebx, eax
movzx eax, ax
mov dword [ebp - 0x4018], eax
jne 0x4065d3
mov eax, esi
call dbg.WCMD_popnumber
mov dword [ebp - 0x4014], eax
cmp bx, 0x4e
je 0x4066c3
jbe 0x406590
cmp bx, 0x50
je 0x406621
cmp bx, 0x7e
jne 0x406635
mov edx, dword [ebp - 0x4014]
mov ecx, esi
xor eax, eax
not edx
call dbg.WCMD_pushnumber
jmp 0x4065b0
cmp bx, 0x21
jne 0x406635
mov ecx, dword [ebp - 0x4014]
xor edx, edx
test ecx, ecx
mov ecx, esi
sete dl
xor eax, eax
call dbg.WCMD_pushnumber
mov eax, dword [esi]
test eax, eax
jne case.0x40664f.0
test byte [0x425010], 8
jne 0x4069e0
mov dword [ebp - 0x4010], 0x412
jmp 0x406613
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Reducing_the_stacks___processing_operator__c_n
mov dword [esp + 8], str.WCMD_reduce
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.6
jmp 0x40654b
test byte [0x425010], 8
jne 0x406660
mov dword [ebp - 0x4010], 0x413
mov eax, dword [ebp - 0x4010]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [ebp - 0x4014]
mov ecx, esi
xor eax, eax
call dbg.WCMD_pushnumber
jmp 0x4065b0
mov edx, dword [esi]
test edx, edx
je 0x4065ba
lea eax, [ebx - 0x21]
cmp ax, 0x5d
ja case.0x40664f.1
movzx eax, ax
jmp dword [eax*4 + 0x427698]
mov dword [esp + 0xc], str.No_operators_for_the_reduce_n
mov dword [esp + 8], str.WCMD_reduce
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.6
jmp 0x406609
mov eax, esi
call dbg.WCMD_popnumber
movzx ecx, byte [ebp - 0x4014]
sar eax, cl
mov edx, eax
mov ecx, esi
xor eax, eax
call dbg.WCMD_pushnumber
mov dword [ebp - 0x4010], 0
mov eax, dword [ebp - 0x4010]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [ebp - 0x4014]
mov ecx, esi
xor eax, eax
neg edx
call dbg.WCMD_pushnumber
jmp 0x4065b0
mov eax, esi
call dbg.WCMD_popnumber
mov edx, dword [ebp - 0x4014]
mov ecx, esi
or edx, eax
xor eax, eax
call dbg.WCMD_pushnumber
mov dword [ebp - 0x4010], 0
jmp 0x406613
mov eax, dword [edx]
mov dword [ebp - 0x4010], eax
test eax, eax
jne 0x4065c7
mov eax, esi
call dbg.WCMD_peeknumber
mov ecx, esi
mov edx, eax
xor eax, eax
call dbg.WCMD_pushnumber
mov edx, dword [ebp - 0x4014]
xor eax, eax
mov ecx, esi
call dbg.WCMD_pushnumber
cmp bx, 0x61
je 0x406ada
xor eax, eax
mov edx, 0x62
mov esi, 0x2f
jmp 0x406779
cmp bx, dx
je 0x406a64
movzx esi, word [eax*4 + 0x428d84]
movzx edx, word [eax*4 + 0x428d86]
add eax, 1
cmp si, 0x20
jne 0x406760
cmp dx, 0x20
je 0x406a90
mov edx, 1
mov eax, 0x3d
mov ecx, edi
call dbg.WCMD_pushoperator
xor edx, edx
mov eax, 0x20
mov ecx, edi
call dbg.WCMD_pushoperator
jmp 0x406613
mov eax, esi
call dbg.WCMD_popnumber
mov edx, dword [ebp - 0x4014]
mov ecx, esi
xor edx, eax
xor eax, eax
call dbg.WCMD_pushnumber
mov dword [ebp - 0x4010], 0
jmp 0x406613
mov eax, dword [ebp - 0x4014]
lea ebx, [ebp - 0x400c]
mov dword [esp + 8], 0x427162
mov dword [esp + 4], 0x2000
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call sym._swprintf.constprop.8
test byte [0x425010], 8
jne 0x406a20
mov dword [esp + 4], ebx
mov eax, dword [esi]
mov eax, dword [eax + 4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_SetEnvironmentVariableW]
mov eax, esi
sub esp, 8
call dbg.WCMD_popnumber
mov edx, dword [ebp - 0x4014]
mov ecx, esi
xor eax, eax
call dbg.WCMD_pushnumber
mov dword [ebp - 0x4010], 0
jmp 0x406613
mov eax, esi
call dbg.WCMD_popnumber
cmp dword [ebp - 0x4014], 0x1f
jbe 0x406a10
mov ecx, esi
xor edx, edx
xor eax, eax
call dbg.WCMD_pushnumber
mov dword [ebp - 0x4010], 0
jmp 0x406613
mov eax, esi
call dbg.WCMD_popnumber
mov edx, dword [ebp - 0x4014]
test edx, edx
je 0x4069d0
cdq
mov ecx, esi
idiv dword [ebp - 0x4014]
mov edx, eax
xor eax, eax
call dbg.WCMD_pushnumber
mov dword [ebp - 0x4010], 0
jmp 0x406613
mov eax, esi
call dbg.WCMD_popnumber
sub eax, dword [ebp - 0x4014]
jmp 0x4066a0
mov eax, esi
call dbg.WCMD_popnumber
mov edx, dword [ebp - 0x4014]
mov ecx, esi
and edx, eax
xor eax, eax
call dbg.WCMD_pushnumber
mov dword [ebp - 0x4010], 0
jmp 0x406613
mov eax, esi
call dbg.WCMD_popnumber
mov ecx, dword [ebp - 0x4014]
test ecx, ecx
je 0x4069d0
cdq
idiv ecx
mov ecx, esi
xor eax, eax
call dbg.WCMD_pushnumber
mov dword [ebp - 0x4010], 0
jmp 0x406613
mov eax, esi
call dbg.WCMD_popnumber
mov edx, dword [ebp - 0x4014]
mov ecx, esi
add edx, eax
xor eax, eax
call dbg.WCMD_pushnumber
mov dword [ebp - 0x4010], 0
jmp 0x406613
mov eax, esi
call dbg.WCMD_popnumber
mov edx, dword [ebp - 0x4014]
mov ecx, esi
imul edx, eax
xor eax, eax
call dbg.WCMD_pushnumber
mov dword [ebp - 0x4010], 0
jmp 0x406613
test byte [0x425010], 2
je case.0x40664f.0
mov eax, dword [ebp - 0x4018]
mov dword [esp + 0xc], str.Unrecognized_operator__c_n
mov dword [esp + 8], str.WCMD_reduce
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x425010
mov dword [esp], 1
call sym._wine_dbg_log.constprop.6
jmp case.0x40664f.0
mov dword [ebp - 0x4010], 0x411
jmp 0x406613
mov dword [esp + 0xc], str.No_operands_left_for_the_reduce__n
mov dword [esp + 8], str.WCMD_reduce
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.6
jmp 0x4065c7
movzx ecx, byte [ebp - 0x4014]
shl eax, cl
jmp 0x4066a0
mov eax, ebx
call sym._wine_dbgstr_wn.constprop.5
mov edi, eax
mov eax, dword [esi]
mov eax, dword [eax + 4]
call sym._wine_dbgstr_wn.constprop.5
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Assigning__s_a_value__s_n
mov dword [esp + 8], str.WCMD_reduce
mov dword [esp + 4], 0x425010
mov dword [esp], 3
call sym._wine_dbg_log.constprop.6
jmp 0x406815
mov eax, 0x3d
mov ecx, edi
mov edx, 1
call dbg.WCMD_pushoperator
movzx eax, si
sub esi, 0x21
cmp si, 0x5d
ja 0x406afa
movzx esi, si
movsx edx, byte [esi + 0x428a80]
jmp 0x4067a4
test byte [0x425010], 2
je 0x406609
mov eax, dword [ebp - 0x4018]
mov dword [esp + 0xc], str.Unexpected_operator__c_n
mov dword [esp + 8], str.WCMD_reduce
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x425010
mov dword [esp], 1
call sym._wine_dbg_log.constprop.6
mov dword [ebp - 0x4010], 0x413
jmp 0x406613
mov edx, 1
mov eax, 0x3d
mov ecx, edi
call dbg.WCMD_pushoperator
mov edx, 7
mov eax, 0x2a
jmp 0x4067a4
xor edx, edx
jmp 0x4067a4