Function at 0x10022620
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8828
mov eax, dword [ebp + 8]
push ebx
lea ecx, [eax + 0x208]
push esi
push edi
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], ecx
cmp eax, ecx
ja 0x100229aa
mov ecx, dword [ebp + 0x14]
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
nop
mov eax, dword [ebp - 0x10]
cmp eax, 0x4e40
ja 0x10022904
je 0x100228f8
cmp eax, 0x1784
ja 0x10022877
or byte [edx], al
add byte [eax], al
je 0x10022859
sub eax, 0x1775
je 0x10022836
sub eax, 5
je 0x100227c1
sub eax, 5
jne case.0x10022919.20038
dec ecx
fiadd dword [ebx - 0x475e5fac]
popfd
adc edx, dword [eax]
test eax, eax
je 0x100226b4
push str.Chief_Reporter
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp + 0x14]
mov dword [0x10139e04], eax
cmp dword [0x10139e04], 0
jne 0x10022709
mov eax, 0x4321
mov dword [ebp - 4], eax
cmp eax, eax
jne 0x100226f9
push ss
je 0x100226d2
loope 0x1002266b
mov edx, dword [0x10139db8]
adc edx, dword [eax]
mov dword [0x10139e04], 0x100349d0
test edx, edx
je 0x100226ef
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp - 4]
mov dword [0x10139db8], 0
inc eax
mov dword [ebp - 4], eax
cmp eax, 0x4321
jbe 0x100226c7
jmp case.0x10022919.20038
mov dword [ebp - 4], 0x3c44
mov eax, dword [ebp - 4]
sub eax, 0x3c44
je 0x1002278b
sub eax, 0x44
jne 0x100227a8
mov edi, ebx
sub dword [eax], 0xe4453918
je 0x10022737
call dword [ebp - 0x1c]
mov ecx, dword [ebp + 0x14]
test eax, eax
jne 0x100227a8
mov edx, 0x17c7
mov dword [ebp - 8], edx
nop
mov eax, edx
sub eax, 0x17c7
je 0x1002275a
sub eax, 4
jne 0x1002277b
popfd
mov dh, 0x96
and ebx, dword [ebx]
mov dword [0x10139db8], eax
jmp 0x1002277b
pushfd
dec ebx
cmp dword es:[ecx - 0x48], eax
popfd
adc edx, dword [eax]
push eax
mov dword [0x10139e04], 0x100349d0
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 8]
add edx, 4
mov dword [ebp - 8], edx
cmp edx, 0x17cb
jbe 0x10022740
jmp 0x100227a8
jmp 0x100227be
mov eax, dword [ebp - 4]
add eax, 0x44
mov dword [ebp - 4], eax
cmp eax, 0x3c88
jbe 0x10022710
jmp case.0x10022919.20038
add eax, 0x9f2e0000
lahf
inc edx
cmp byte [ebp + 0x52e8558b], ch
lea eax, [ebp - 0x828]
push eax
mov dword [0x10139e00], 1
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x10022d6f
mov ecx, dword [ebp - 0x18]
push 0x490b
lea edx, [ebp - 8]
push edx
push str.LiveEdit__5_
lea eax, [ebp - 4]
mov dword [ebp - 8], ecx
push eax
lea ecx, [ebp - 0x828]
push ecx
mov dword [ebp - 4], 0xc
call fcn.10029d70
add esp, 0x14
test eax, eax
jne 0x10022d6f
lea edx, [ebp - 0x828]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [0x10139db8], eax
jmp 0x10022d6f
mov ebp, 0x6a894f2f
push 0x67f4
push 0
mov dword [ebp - 0x18], 0x400
call fcn.1001a1a0
add esp, 8
mov dword [ebp - 0x24], eax
jmp 0x10022d6f
or cl, al
invalid
cmp eax, 0x1789
je 0x10022dbd
cmp eax, 0x38f1
jne case.0x10022919.20038
mov eax, dword [ebx]
mov dword [ebp - 4], eax
cmp eax, dword [ebx + 4]
je case.0x10022919.20038
jmp 0x100228a0
mov eax, dword [eax + 4]
mov ecx, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100228c5
test dl, dl
je 0x100228c1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100228c5
add eax, 2
add ecx, 2
test dl, dl
jne 0x100228a5
xor eax, eax
jmp 0x100228ca
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100228e5
mov eax, 0x3f79
cmp eax, eax
je 0x10022d8e
add eax, 0x4e
cmp eax, 0x3f79
jbe 0x100228d5
mov eax, dword [ebp - 4]
add eax, 0x20
mov dword [ebp - 4], eax
cmp eax, dword [ebx + 4]
jne 0x100228a0
jmp 0x10022d6f
mov dword [ebp - 0x28], 0x7fff
jmp case.0x10022919.20038
add eax, 0xffffb1bb
cmp eax, 0x19
ja case.0x10022919.20038
movzx eax, byte [eax + 0x10022df4]
jmp dword [eax*4 + 0x10022dd8]
test ebx, ebx
je 0x10022dcc
cmp dword [ecx], 0x10
jae case.0x10022919.20038
mov eax, 0xaf5
mov dword [ebp - 8], eax
lea esp, [esp]
cmp eax, 0xb89
ja 0x1002299b
je 0x10022984
mov edx, eax
sub edx, 0xaf5
je 0x1002296c
sub edx, 0x4a
jne 0x100229be
mov edx, dword [esi]
cmp edx, 0xfff1
jb 0x100229be
add edx, 0xffff000f
mov dword [esi], edx
jmp 0x100229be
cmp dword [ecx], 0
je 0x10022980
dec dword [ecx]
movzx edx, byte [ebx]
add dword [esi], edx
add edi, dword [esi]
inc ebx
cmp dword [ecx], 0
jne 0x10022971
dec dword [ecx]
jmp 0x100229be
mov eax, 0x80078071
mul edi
mov eax, dword [ebp - 8]
shr edx, 0xf
imul edx, edx, 0xffff000f
add edi, edx
jmp 0x100229be
mov edx, eax
sub edx, 0xbd3
je 0x100229b4
sub edx, 0x4a
jne 0x100229be
mov eax, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, edi
shl edx, 0x10
or edx, dword [esi]
mov dword [ebp - 0xc], edx
add eax, 0x4a
mov dword [ebp - 8], eax
cmp eax, 0xc1d
jbe 0x10022940
jmp case.0x10022919.20038
cmp dword [ecx], 0x15b0
movsx eax, word [ebp - 0x28]
mov dword [ebp + 8], eax
jb case.0x10022919.20038
jmp 0x100229f0
mov edx, 0x647d
mov dword [ebp - 8], edx
jmp 0x10022a00
mov eax, edx
sub eax, 0x647d
je 0x10022b34
sub eax, 0x51
jne 0x10022b41
jmp 0x10022a20
mov ecx, 0x6d1e
cmp ecx, 0x6e42
ja 0x10022a9f
je 0x10022a91
lea eax, [ecx - 0x6d1e]
cmp eax, 0xdb
ja case.0x10022ab3.28300
movzx edx, byte [eax + 0x10022e24]
jmp dword [edx*4 + 0x10022e10]
movzx eax, byte [ebx + 6]
add dword [esi], eax
mov eax, dword [esi]
movzx edx, byte [ebx + 7]
jmp 0x10022aed
movzx eax, byte [ebx]
add dword [esi], eax
add edi, dword [esi]
jmp case.0x10022ab3.28300
movzx edx, byte [ebx + 3]
add dword [esi], edx
movzx edx, byte [ebx + 4]
mov eax, dword [esi]
add edi, eax
add eax, edx
mov dword [esi], eax
movzx edx, byte [ebx + 5]
jmp 0x10022aed
movzx eax, byte [ebx + 1]
add dword [esi], eax
mov eax, dword [esi]
movzx edx, byte [ebx + 2]
jmp 0x10022aed
movzx eax, byte [ebx + 8]
add dword [esi], eax
mov eax, dword [esi]
movzx edx, byte [ebx + 9]
jmp 0x10022aed
lea eax, [ecx - 0x6e8b]
cmp eax, 0xdb
ja case.0x10022ab3.28300
movzx eax, byte [eax + 0x10022f14]
jmp dword [eax*4 + 0x10022f00]
movzx edx, byte [ebx + 0xe]
add dword [esi], edx
mov eax, dword [esi]
movzx edx, byte [ebx + 0xf]
jmp 0x10022aed
add ebx, 0x10
jmp case.0x10022ab3.28300
movzx eax, byte [ebx + 0xa]
add dword [esi], eax
add edi, dword [esi]
jmp case.0x10022ab3.28300
movzx edx, byte [ebx + 0xb]
add dword [esi], edx
movzx edx, byte [ebx + 0xc]
mov eax, dword [esi]
add edi, eax
add eax, edx
mov dword [esi], eax
movzx edx, byte [ebx + 0xd]
add edi, eax
add eax, edx
add edi, eax
mov dword [esi], eax
add ecx, 0x49
cmp ecx, 0x6f66
jbe 0x10022a25
dec dword [ebp - 0x20]
jne 0x10022a20
mov eax, dword [esi]
xor edx, edx
mov ecx, 0xfff1
div ecx
mov ecx, dword [ebp + 0x14]
mov eax, 0x80078071
mov dword [esi], edx
mul edi
shr edx, 0xf
imul edx, edx, 0xffff000f
add edi, edx
mov edx, dword [ebp - 8]
jmp 0x10022b41
add dword [ecx], 0xffffea50
mov dword [ebp - 0x20], 0x15b
add edx, 0x51
mov dword [ebp - 8], edx
cmp edx, 0x64ce
jbe 0x10022a00
cmp dword [ecx], 0x15b0
jae 0x100229f0
jmp case.0x10022919.20038
movzx edi, word [esi + 2]
jmp case.0x10022919.20038
xor edx, edx
mov word [esi + 2], dx
cmp dword [ecx], 1
jne case.0x10022919.20038
mov edx, 0x5c79
mov eax, edx
sub eax, 0x5c79
je 0x10022bab
sub eax, 0xe
jne 0x10022bc2
cmp edi, 0xfff1
jb case.0x10022919.20062
sub edi, 0xfff1
shl edi, 0x10
or edi, dword [esi]
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, byte [ebx]
add dword [esi], eax
mov eax, dword [esi]
cmp eax, 0xfff1
jb 0x10022bc0
add eax, 0xffff000f
mov dword [esi], eax
add edi, dword [esi]
add edx, 0xe
cmp edx, 0x5c87
jbe 0x10022b81
jmp case.0x10022919.20038
cmp dword [ecx], 0
je 0x10022d5c
mov eax, 0x1092
mov dword [ebp - 8], eax
sub eax, 0x1092
je 0x10022c0a
sub eax, 0x5b
jne 0x10022d48
mov eax, 0x80078071
mul edi
shr edx, 0xf
imul edx, edx, 0xffff000f
add edi, edx
jmp 0x10022d48
cmp dword [ecx], 0x10
jb 0x10022d22
jmp 0x10022c20
mov edx, 0x19b4
mov dword [ebp - 4], edx
jmp 0x10022c30
cmp edx, 0x1b10
ja 0x10022cc0
je 0x10022ca8
cmp edx, 0x1a62
ja 0x10022c88
je 0x10022c7a
mov eax, edx
sub eax, 0x19b4
je 0x10022c67
sub eax, 0x57
jne 0x10022d07
movzx eax, byte [ebx + 2]
add dword [esi], eax
add edi, dword [esi]
jmp 0x10022d07
add dword [ecx], 0xfffffff0
movzx edx, byte [ebx]
add dword [esi], edx
mov eax, dword [esi]
movzx edx, byte [ebx + 1]
jmp 0x10022cfc
movzx eax, byte [ebx + 3]
add dword [esi], eax
mov eax, dword [esi]
movzx edx, byte [ebx + 4]
jmp 0x10022cfc
cmp edx, 0x1ab9
jne 0x10022d07
movzx eax, byte [ebx + 5]
add dword [esi], eax
movzx edx, byte [ebx + 6]
mov eax, dword [esi]
add edi, eax
add eax, edx
mov dword [esi], eax
movzx edx, byte [ebx + 7]
jmp 0x10022cfc
movzx eax, byte [ebx + 8]
add dword [esi], eax
movzx edx, byte [ebx + 9]
mov eax, dword [esi]
add edi, eax
add eax, edx
mov dword [esi], eax
movzx edx, byte [ebx + 0xa]
jmp 0x10022cfc
mov eax, edx
sub eax, 0x1b67
je 0x10022ce6
sub eax, 0x57
je 0x10022cd8
sub eax, 0x57
jne 0x10022d07
add ebx, 0x10
jmp 0x10022d07
movzx eax, byte [ebx + 0xe]
add dword [esi], eax
mov eax, dword [esi]
movzx edx, byte [ebx + 0xf]
jmp 0x10022cfc
movzx eax, byte [ebx + 0xb]
add dword [esi], eax
movzx edx, byte [ebx + 0xc]
mov eax, dword [esi]
add edi, eax
add eax, edx
mov dword [esi], eax
movzx edx, byte [ebx + 0xd]
add edi, eax
add eax, edx
mov edx, dword [ebp - 4]
add edi, eax
mov dword [esi], eax
add edx, 0x57
mov dword [ebp - 4], edx
cmp edx, 0x1c15
jbe 0x10022c30
cmp dword [ecx], 0x10
jae 0x10022c20
cmp dword [ecx], 0
je 0x10022d36
dec dword [ecx]
movzx eax, byte [ebx]
add dword [esi], eax
add edi, dword [esi]
inc ebx
cmp dword [ecx], 0
jne 0x10022d27
dec dword [ecx]
mov eax, dword [esi]
mov ecx, 0xfff1
xor edx, edx
div ecx
mov ecx, dword [ebp + 0x14]
mov dword [esi], edx
mov eax, dword [ebp - 8]
add eax, 0x5b
mov dword [ebp - 8], eax
cmp eax, 0x10ed
jbe 0x10022be3
lea edx, [ebp + 8]
push edx
lea eax, [ebp - 0x8828]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetComputerNameExA]
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x10]
add eax, 5
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x14]
jbe 0x10022650
mov eax, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 4]
push 0x163
push 0
lea ecx, [ebp - 0x14]
push ecx
push 0
push ebx
push eax
mov byte [eax + 0x18], 0
mov dword [ebp - 0x14], 3
call fcn.100221b0
mov eax, dword [ebp - 0xc]
add esp, 0x18
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
scasb al, byte es:[edi]
invalid
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret