Function at 0x10021cb0
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push esi
push edi
mov dword [ebp - 4], 0x282
mov eax, dword [ebp - 4]
sub eax, 0x15c65
sub eax, dword [0x1007f024]
xor ecx, ecx
add eax, dword [ebp - 0x1c]
adc ecx, dword [ebp - 0x18]
add eax, dword [ebp - 0x1c]
adc ecx, dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], ecx
push 0x57a
call fcn.1002b15e
add esp, 4
mov dword [ebp - 8], eax
mov edx, dword [ebp - 8]
mov dword [ebp - 0xc], edx
imul eax, dword [0x1007f024], 0x24
mov ecx, dword [section..data]
sub ecx, eax
xor edx, edx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], edx
push 0x57a
mov eax, dword [ebp - 0xc]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov dword [ebp - 4], eax
mov ecx, 4
imul edx, ecx, 0xf
mov eax, dword [edx + 0x1007f028]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x10021d3b
jmp 0x10021d58
mov ecx, dword [ebp - 4]
sub ecx, 0x43
movzx edx, word [0x1007f008]
sub ecx, edx
add ecx, dword [section..data]
mov dword [section..data], ecx
jmp 0x10021d7f
mov eax, dword [ebp - 4]
sub eax, 0x15c65
sub eax, dword [section..data]
movzx ecx, word [0x1007f008]
add eax, ecx
movzx edx, word [0x1007f008]
add edx, eax
mov word [0x1007f008], dx
movzx eax, word [0x1007f008]
push eax
call fcn.100217a0
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], ecx
push 0x57a
push 0x1007fc18
push str.Office
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov dword [0x100806cc], 3
jmp 0x10021dc7
mov edx, dword [0x100806cc]
add edx, 2
mov dword [0x100806cc], edx
cmp dword [0x100806cc], 0x1a
jge 0x10021e3c
mov eax, 4
shl eax, 1
mov ecx, dword [0x1007f024]
cmp ecx, dword [eax + 0x1007f028]
jne 0x10021de7
jmp 0x10021e3c
movzx edx, byte [0x1007f004]
mov eax, dword [0x100806cc]
sub edx, dword [eax*4 + 0x1007f028]
mov byte [0x1007f004], dl
mov ecx, dword [0x1007f024]
sub ecx, 0x43
movzx edx, word [0x1007f008]
sub ecx, edx
movzx eax, byte [0x1007f004]
add eax, ecx
mov byte [0x1007f004], al
mov ecx, 4
imul edx, ecx, 9
mov eax, dword [0x1007f024]
cmp eax, dword [edx + 0x1007f028]
jne 0x10021e37
jmp 0x10021e3c
jmp 0x10021db8
push 0x39d
call dword [sym.imp.KERNEL32.dll_SetConsoleOutputCP]
mov dword [0x100806cc], 0x27
jmp 0x10021e62
mov ecx, dword [0x100806cc]
sub ecx, 1
mov dword [0x100806cc], ecx
cmp dword [0x100806cc], 2
jle 0x10021ee5
mov edx, 1
imul eax, edx, 5
movzx eax, byte [eax + 0x1007f00c]
cdq
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], edx
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x24]
jne 0x10021e93
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x20]
jne 0x10021e93
jmp 0x10021ee5
mov ecx, dword [ebp - 0x1c]
sub ecx, 9
movzx eax, word [0x1007f008]
cdq
sub ecx, eax
mov dword [0x1007f024], ecx
movzx edx, word [0x1007f008]
mov eax, dword [0x100806cc]
movzx ecx, byte [eax + 0x1007f00c]
add ecx, edx
mov edx, dword [0x100806cc]
mov byte [edx + 0x1007f00c], cl
mov ecx, dword [ebp - 0x1c]
sub ecx, 9
movzx eax, word [0x1007f008]
cdq
sub ecx, eax
mov dword [0x1007f024], ecx
jmp 0x10021e53
mov dword [0x100806cc], 3
jmp 0x10021f00
mov edx, dword [0x100806cc]
add edx, 2
mov dword [0x100806cc], edx
cmp dword [0x100806cc], 0x1a
jge 0x10021f77
movzx eax, word [0x1007f008]
mov ecx, 1
shl ecx, 1
movzx edx, byte [ecx + 0x1007f00c]
cmp eax, edx
jne 0x10021f24
jmp 0x10021f77
mov eax, dword [0x100806cc]
movzx ecx, byte [eax + 0x1007f00c]
mov edx, dword [section..data]
sub edx, ecx
mov dword [section..data], edx
movzx eax, word [0x1007f008]
sub eax, 0x43
sub eax, dword [ebp - 4]
add eax, dword [section..data]
mov dword [section..data], eax
movzx ecx, word [0x1007f008]
mov edx, 1
imul eax, edx, 9
movzx edx, byte [eax + 0x1007f00c]
cmp ecx, edx
jne 0x10021f72
jmp 0x10021f77
jmp 0x10021ef1
movzx eax, word [0x1007f008]
add eax, 1
sub eax, dword [ebp - 4]
mov byte [0x1007f004], al
movzx ecx, word [0x1007f008]
push ecx
call fcn.100215c0
add esp, 4
mov dword [section..data], eax
mov edx, dword [section..data]
sub edx, 0x15c65
sub edx, dword [0x1007f024]
xor eax, eax
add edx, dword [ebp - 0x1c]
adc eax, dword [ebp - 0x18]
add edx, dword [ebp - 0x1c]
adc eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], eax
mov ecx, dword [0x1007f024]
sub ecx, 9
movzx edx, word [0x1007f008]
sub ecx, edx
xor eax, eax
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], eax
mov ecx, dword [0x1007f024]
push ecx
call fcn.10021a60
add esp, 4
mov dword [section..data], eax
imul edx, dword [0x1007f024], 0x24
mov eax, dword [ebp - 4]
sub eax, edx
xor ecx, ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], ecx
mov dword [0x100806cc], 3
jmp 0x10022021
mov edx, dword [0x100806cc]
add edx, 2
mov dword [0x100806cc], edx
cmp dword [0x100806cc], 0x1a
jge 0x100220a3
movzx eax, word [0x1007f008]
mov ecx, 1
shl ecx, 1
movzx edx, byte [ecx + 0x1007f00c]
cmp eax, edx
jne 0x10022045
jmp 0x100220a3
mov eax, dword [0x100806cc]
movzx eax, byte [eax + 0x1007f00c]
cdq
mov ecx, dword [ebp - 0x1c]
sub ecx, eax
mov eax, dword [ebp - 0x18]
sbb eax, edx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], eax
movzx eax, word [0x1007f008]
sub eax, 0x43
movzx ecx, byte [0x1007f004]
sub eax, ecx
cdq
add eax, dword [ebp - 0x1c]
adc edx, dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], edx
movzx edx, word [0x1007f008]
mov eax, 1
imul ecx, eax, 9
movzx eax, byte [ecx + 0x1007f00c]
cmp edx, eax
jne 0x1002209e
jmp 0x100220a3
jmp 0x10022012
mov ecx, dword [ebp - 4]
push ecx
call fcn.100217a0
add esp, 4
mov dword [section..data], eax
mov edx, 4
imul eax, edx, 0x11
mov ecx, 4
imul edx, ecx, 3
mov eax, dword [eax + 0x1007f028]
add eax, dword [edx + 0x1007f028]
cmp eax, 0x309
jne 0x10022101
mov ecx, dword [ebp - 0x1c]
sub ecx, 0x43
sub ecx, dword [ebp - 0x1c]
mov edx, dword [0x1007f024]
add edx, ecx
mov dword [0x1007f024], edx
mov eax, dword [ebp - 0x1c]
add eax, 1
sub eax, dword [0x1007f024]
mov dword [0x1007f024], eax
jmp 0x10022146
mov esi, dword [0x1007f024]
xor edi, edi
push 0
push 0x28fd
mov ecx, dword [ebp - 0x18]
push ecx
mov edx, dword [ebp - 0x1c]
push edx
call fcn.1002b510
sub esi, eax
sbb edi, edx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], edi
mov eax, dword [ebp - 0x1c]
sub eax, 0x15c65
sub eax, dword [ebp - 0x1c]
add eax, dword [0x1007f024]
mov ecx, dword [0x1007f024]
add ecx, eax
mov dword [0x1007f024], ecx
mov edx, dword [0x1007f024]
sub edx, 9
movzx eax, word [0x1007f008]
sub edx, eax
xor ecx, ecx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], ecx
imul edx, dword [0x1007f024], 0x25
add edx, dword [ebp - 4]
xor eax, eax
mov ecx, dword [ebp - 0x1c]
sub ecx, edx
mov edx, dword [ebp - 0x18]
sbb edx, eax
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], edx
mov eax, 4
shl eax, 4
cmp dword [eax + 0x1007f028], 0x1c72
jne 0x100221bf
mov ecx, 4
shl ecx, 1
mov edx, dword [0x1007f024]
add edx, dword [ecx + 0x1007f028]
mov dword [0x1007f024], edx
imul eax, dword [0x1007f024], 0x24
mov ecx, dword [0x1007f024]
sub ecx, eax
mov word [0x1007f008], cx
mov dword [0x100806cc], 0x27
jmp 0x100221da
mov edx, dword [0x100806cc]
sub edx, 1
mov dword [0x100806cc], edx
cmp dword [0x100806cc], 2
jle 0x1002223d
mov eax, 1
imul ecx, eax, 5
movzx edx, byte [ecx + 0x1007f00c]
cmp dword [section..data], edx
jne 0x100221fc
jmp 0x1002223d
mov eax, dword [section..data]
sub eax, 9
sub eax, dword [ebp - 4]
mov word [0x1007f008], ax
mov ecx, dword [0x100806cc]
movzx edx, byte [ecx + 0x1007f00c]
add edx, dword [ebp - 4]
mov eax, dword [0x100806cc]
mov byte [eax + 0x1007f00c], dl
mov ecx, dword [section..data]
sub ecx, 9
sub ecx, dword [ebp - 4]
mov word [0x1007f008], cx
jmp 0x100221cb
movzx edx, word [0x1007f008]
push edx
call fcn.10026bd0
add esp, 4
movzx eax, word [0x1007f008]
cmp eax, dword [0x1007f024]
jb 0x100222ab
movzx ecx, word [0x1007f008]
sub ecx, 0x45
sub ecx, dword [section..data]
mov dword [0x1007f024], ecx
mov edx, 4
imul eax, edx, 7
mov ecx, dword [eax + 0x1007f028]
imul ecx, dword [section..data]
mov edx, 4
imul eax, edx, 7
mov dword [eax + 0x1007f028], ecx
movzx ecx, word [0x1007f008]
sub ecx, 9
sub ecx, dword [section..data]
mov dword [0x1007f024], ecx
imul edx, dword [0x1007f024], 0x25
add edx, dword [section..data]
xor eax, eax
mov ecx, dword [ebp - 0x1c]
sub ecx, edx
mov edx, dword [ebp - 0x18]
sbb edx, eax
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], edx
push 0x20
push 0
push 0x100806d0
call dword [sym.imp.KERNEL32.dll_FindFirstChangeNotificationA]
mov dword [ebp - 0x14], eax
mov eax, dword [0x1007f024]
sub eax, 0x43
movzx ecx, word [0x1007f068]
sub eax, ecx
movzx edx, word [0x1007f008]
add edx, eax
mov word [0x1007f008], dx
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc