Function at 0x4041f0
Capabilities:
Set environment variable

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
push eax
mov eax, 0x4038
call fcn.004240d8
sub esp, eax
mov eax, dword [esp + eax]
mov esi, dword [eax]
test esi, esi
je 0x4042f0
mov ebx, dword [edx]
mov esi, edx
test ebx, ebx
je 0x4042f0
mov edi, eax
call dbg.WCMD_popoperator
test byte [0x425010], 8
mov ebx, eax
movzx eax, ax
mov dword [ebp - 0x4024], eax
jne 0x4042c3
mov eax, esi
call dbg.WCMD_popnumber
mov dword [ebp - 0x4020], eax
cmp bx, 0x4e
je 0x4043b3
jbe 0x404280
cmp bx, 0x50
je 0x404311
cmp bx, 0x7e
jne 0x404325
mov edx, dword [ebp - 0x4020]
mov ecx, esi
xor eax, eax
not edx
call dbg.WCMD_pushnumber
jmp 0x4042a0
cmp bx, 0x21
jne 0x404325
mov ecx, dword [ebp - 0x4020]
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.0x40433f.0
test byte [0x425010], 8
jne 0x4046d0
mov dword [ebp - 0x401c], 0x412
jmp 0x404303
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.9
jmp 0x40423b
test byte [0x425010], 8
jne 0x404350
mov dword [ebp - 0x401c], 0x413
mov eax, dword [ebp - 0x401c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [ebp - 0x4020]
mov ecx, esi
xor eax, eax
call dbg.WCMD_pushnumber
jmp 0x4042a0
mov edx, dword [esi]
test edx, edx
je 0x4042aa
lea eax, [ebx - 0x21]
cmp ax, 0x5d
ja case.0x40433f.1
movzx eax, ax
jmp dword [eax*4 + 0x4263bc]
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.9
jmp 0x4042f9
mov eax, esi
call dbg.WCMD_popnumber
movzx ecx, byte [ebp - 0x4020]
sar eax, cl
mov edx, eax
mov ecx, esi
xor eax, eax
call dbg.WCMD_pushnumber
mov dword [ebp - 0x401c], 0
mov eax, dword [ebp - 0x401c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [ebp - 0x4020]
mov ecx, esi
xor eax, eax
neg edx
call dbg.WCMD_pushnumber
jmp 0x4042a0
mov eax, esi
call dbg.WCMD_popnumber
mov edx, dword [ebp - 0x4020]
mov ecx, esi
or edx, eax
xor eax, eax
call dbg.WCMD_pushnumber
mov dword [ebp - 0x401c], 0
jmp 0x404303
mov eax, dword [edx]
mov dword [ebp - 0x401c], eax
test eax, eax
jne 0x4042b7
mov eax, esi
call dbg.WCMD_peeknumber
mov ecx, esi
mov edx, eax
xor eax, eax
call dbg.WCMD_pushnumber
mov edx, dword [ebp - 0x4020]
xor eax, eax
mov ecx, esi
call dbg.WCMD_pushnumber
cmp bx, 0x61
je 0x4047ca
xor eax, eax
mov edx, 0x62
mov esi, 0x2f
jmp 0x404469
cmp bx, dx
je 0x404754
movzx esi, word [eax*4 + 0x427d64]
movzx edx, word [eax*4 + 0x427d66]
add eax, 1
cmp si, 0x20
jne 0x404450
cmp dx, 0x20
je 0x404780
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 0x404303
mov eax, esi
call dbg.WCMD_popnumber
mov edx, dword [ebp - 0x4020]
mov ecx, esi
xor edx, eax
xor eax, eax
call dbg.WCMD_pushnumber
mov dword [ebp - 0x401c], 0
jmp 0x404303
mov eax, dword [ebp - 0x4020]
lea ebx, [ebp - 0x4018]
mov dword [esp + 8], 0x42612a
mov dword [esp + 4], 0x2000
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call sym._swprintf.constprop.6
test byte [0x425010], 8
jne 0x404710
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 - 0x4020]
mov ecx, esi
xor eax, eax
call dbg.WCMD_pushnumber
mov dword [ebp - 0x401c], 0
jmp 0x404303
mov eax, esi
call dbg.WCMD_popnumber
cmp dword [ebp - 0x4020], 0x1f
jbe 0x404700
mov ecx, esi
xor edx, edx
xor eax, eax
call dbg.WCMD_pushnumber
mov dword [ebp - 0x401c], 0
jmp 0x404303
mov eax, esi
call dbg.WCMD_popnumber
mov edx, dword [ebp - 0x4020]
test edx, edx
je 0x4046c0
cdq
mov ecx, esi
idiv dword [ebp - 0x4020]
mov edx, eax
xor eax, eax
call dbg.WCMD_pushnumber
mov dword [ebp - 0x401c], 0
jmp 0x404303
mov eax, esi
call dbg.WCMD_popnumber
sub eax, dword [ebp - 0x4020]
jmp 0x404390
mov eax, esi
call dbg.WCMD_popnumber
mov edx, dword [ebp - 0x4020]
mov ecx, esi
and edx, eax
xor eax, eax
call dbg.WCMD_pushnumber
mov dword [ebp - 0x401c], 0
jmp 0x404303
mov eax, esi
call dbg.WCMD_popnumber
mov ecx, dword [ebp - 0x4020]
test ecx, ecx
je 0x4046c0
cdq
idiv ecx
mov ecx, esi
xor eax, eax
call dbg.WCMD_pushnumber
mov dword [ebp - 0x401c], 0
jmp 0x404303
mov eax, esi
call dbg.WCMD_popnumber
mov edx, dword [ebp - 0x4020]
mov ecx, esi
add edx, eax
xor eax, eax
call dbg.WCMD_pushnumber
mov dword [ebp - 0x401c], 0
jmp 0x404303
mov eax, esi
call dbg.WCMD_popnumber
mov edx, dword [ebp - 0x4020]
mov ecx, esi
imul edx, eax
xor eax, eax
call dbg.WCMD_pushnumber
mov dword [ebp - 0x401c], 0
jmp 0x404303
test byte [0x425010], 2
je case.0x40433f.0
mov eax, dword [ebp - 0x4024]
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.9
jmp case.0x40433f.0
mov dword [ebp - 0x401c], 0x411
jmp 0x404303
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.9
jmp 0x4042b7
movzx ecx, byte [ebp - 0x4020]
shl eax, cl
jmp 0x404390
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.9
jmp 0x404505
mov eax, 0x3d
mov ecx, edi
mov edx, 1
call dbg.WCMD_pushoperator
movzx eax, si
sub esi, 0x21
cmp si, 0x5d
ja 0x4047ea
movzx esi, si
movsx edx, byte [esi + 0x427a60]
jmp 0x404494
test byte [0x425010], 2
je 0x4042f9
mov eax, dword [ebp - 0x4024]
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.9
mov dword [ebp - 0x401c], 0x413
jmp 0x404303
mov edx, 1
mov eax, 0x3d
mov ecx, edi
call dbg.WCMD_pushoperator
mov edx, 7
mov eax, 0x2a
jmp 0x404494
xor edx, edx
jmp 0x404494