Function at 0x10045204
Capabilities:
Accept command line arguments
Check os version
Get common file path
Parse pe header
Set current directory
Terminate process

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x624
mov eax, dword [0x10098b74]
mov dword [esp + 8], eax
mov eax, 0x39499f43
lea esi, [esp + 0x214]
lea ebx, [esp + 0xc]
cmp eax, 0xff8e9d26
jle 0x10045272
cmp eax, 0x413df0a3
jg 0x1004530f
cmp eax, 0x175eaf54
jle 0x100453c8
cmp eax, 0x31c43768
jg 0x1004555b
cmp eax, 0x175eaf55
je 0x10045585
cmp eax, 0x28783768
jne 0x10045227
push 0
call fcn.1001da3a
add esp, 4
mov eax, 0x91ad338
jmp 0x10045227
cmp eax, 0xbc0c87a7
jle 0x10045345
cmp eax, 0xde07263f
jg 0x1004543e
cmp eax, 0xcb666a45
jg 0x1004558f
cmp eax, 0xbc0c87a8
je 0x10045656
cmp eax, 0xc19772bf
jne 0x10045227
mov ecx, dword [0x10098fbc]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0x3952286e
and eax, 0xc6add791
or eax, edx
xor eax, 0xc6add790
xor ecx, eax
test ecx, eax
sete al
setne ah
cmp dword [0x10098fc0], 0xa
setge cl
setl dl
and ah, dl
and cl, al
or cl, ah
mov ah, dl
xor ah, al
or dl, al
xor dl, 1
or dl, ah
mov eax, edx
xor al, cl
mov ebp, 0x6122f6a9
mov eax, 0x895838cd
jne 0x10045744
mov ebp, 0x895838cd
jmp 0x10045744
cmp eax, 0x685a2d9f
jg 0x1004547e
cmp eax, 0x5cf634f1
jle 0x100455fc
cmp eax, 0x5cf634f2
je 0x100456e0
cmp eax, 0x6122f6a9
jne 0x10045227
mov eax, 0x895838cd
jmp 0x10045227
cmp eax, 0xa7f37f52
jg 0x1004551a
cmp eax, 0x895838cd
je 0x10045753
cmp eax, 0x9a49680b
je 0x100457bf
cmp eax, 0xa3606f60
jne 0x10045227
mov eax, dword [0x10098fbc]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete al
cmp dword [0x10098fc0], 0xa
setge ah
setl dl
mov dh, cl
and dh, dl
inc cl
and cl, ah
or cl, dh
mov ah, dl
xor ah, al
or dl, al
xor dl, 1
or dl, ah
mov eax, edx
xor al, cl
mov ebp, 0x6a0fe771
mov eax, 0xdc147210
jne 0x100453b9
mov ebp, 0xdc147210
test dl, dl
cmovne eax, ebp
test cl, cl
cmove eax, ebp
jmp 0x10045227
cmp eax, 0xff8e9d27
je 0x10045834
cmp eax, 0x91ad338
je 0x1004584e
cmp eax, 0x12aa5590
jne 0x10045227
mov eax, dword [0x10098fbc]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
not eax
mov edx, eax
and edx, 0xfffffffe
and ecx, 1
or ecx, edx
xor eax, ecx
test eax, ecx
setne al
cmp dword [0x10098fc0], 0xa
setge ch
mov cl, ch
xor cl, al
or ch, al
mov dl, ch
xor dl, cl
mov ebp, 0xbc08ba3f
mov eax, 0xbc0c87a8
mov edi, 0xbc08ba3f
test ch, ch
jne 0x100458ec
mov edi, 0xbc0c87a8
jmp 0x100458ec
cmp eax, 0xde072640
je 0x1004586a
cmp eax, 0xe8820b5f
je 0x10045874
cmp eax, 0xeb9fa1ad
jne 0x10045227
push dword [0x10098b68]
push str.__s__w_3
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
mov eax, 0x75d629c9
jmp 0x10045227
cmp eax, 0x685a2da0
je 0x1004588d
cmp eax, 0x6a0fe771
je 0x10045897
cmp eax, 0x75d629c9
jne 0x10045227
push dword [0x10098b68]
push str.__s__w_3
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
mov eax, dword [0x10098fbc]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
not eax
and ecx, 0xf0e5cb8e
mov edx, eax
and edx, 0xf1a3471
or edx, ecx
xor edx, 0xf1a3470
and eax, 0xfffffffe
or eax, edx
xor eax, 0xffffffff
sete cl
setne al
cmp dword [0x10098fc0], 0xa
setge dl
setl ah
and ah, al
and cl, dl
or cl, ah
or dl, al
mov eax, edx
xor al, cl
mov ebp, 0xeb9fa1ad
mov eax, 0xa7f37f53
jne 0x10045744
mov ebp, 0xa7f37f53
jmp 0x10045744
cmp eax, 0xa7f37f53
je 0x100458a1
cmp eax, 0xb166e514
je 0x10045585
cmp eax, 0xbc08ba3f
jne 0x10045227
push dword [esp + 4]
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push ebx
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
push ebx
call fcn.10044cb5
add esp, 4
mov eax, 0xbc0c87a8
jmp 0x10045227
cmp eax, 0x31c43769
je 0x100458ab
cmp eax, 0x39499f43
jne 0x10045227
cmp dword [esp + 8], 0
setne byte [esp + 3]
mov eax, 0xa3606f60
jmp 0x10045227
mov eax, 0x47195674
jmp 0x10045227
cmp eax, 0xdc147210
jne 0x100458fb
mov ecx, dword [0x10098fbc]
mov eax, 0xf0ae26ff
sub eax, ecx
imul eax, ecx
test al, 1
sete ch
cmp dword [0x10098fc0], 0xa
setl dl
setge dh
mov cl, dl
or dl, ch
and ch, dh
and cl, al
or cl, ch
xor dh, al
xor dl, 1
or dl, dh
mov ch, dl
xor ch, cl
mov eax, 0x6a0fe771
mov ebp, 0xff8e9d27
mov edi, 0x6a0fe771
test dl, 1
jne 0x100455ea
mov edi, 0xff8e9d27
test cl, cl
cmovne eax, edi
not ch
test ch, 1
cmovne eax, ebp
jmp 0x10045227
cmp eax, 0x47195674
jne 0x10045908
mov ecx, dword [0x10098fbc]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x10098fc0], 0xa
setl ch
setge cl
or cl, al
xor ch, dl
mov edx, ecx
xor dl, ch
mov eax, 0x413df0a4
mov edi, 0xcb666a46
mov ebp, 0x413df0a4
test ch, ch
jne 0x10045645
mov ebp, 0xcb666a46
test cl, 1
cmovne ebp, edi
test dl, 1
cmovne eax, ebp
jmp 0x10045227
push dword [esp + 4]
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push ebx
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
push ebx
call fcn.10044cb5
add esp, 4
mov eax, dword [0x10098fbc]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
not eax
and ecx, 0x475d7ecf
mov edx, eax
and edx, 0xb8a28130
or edx, ecx
xor edx, 0xb8a28131
and eax, 0xfffffffe
or eax, edx
xor eax, 0x4efba8e4
xor eax, 0xb104571b
sete al
setne dl
cmp dword [0x10098fc0], 0xa
setl ch
setge cl
or cl, dl
xor ch, al
mov dl, ch
xor dl, cl
mov eax, 0xb166e514
mov edi, 0xbc08ba3f
mov ebp, 0xb166e514
test ch, ch
jne 0x100458ec
mov ebp, 0xbc08ba3f
jmp 0x100458ec
mov eax, dword [0x10098fbc]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
not eax
and ecx, 0xe1563c85
mov edx, eax
and edx, 0x1ea9c37a
or edx, ecx
xor edx, 0x1ea9c37b
and eax, 0xfffffffe
or eax, edx
xor eax, 0xefb1f75c
xor eax, 0x104e08a3
setne al
sete ah
cmp dword [0x10098fc0], 0xa
setl cl
setge dl
and ah, dl
and cl, al
or cl, ah
or dl, al
mov eax, edx
xor al, cl
mov ebp, 0xe8820b5f
mov eax, 0x9a49680b
jne 0x10045744
mov ebp, 0x9a49680b
test dl, dl
cmovne eax, ebp
test cl, cl
cmove eax, ebp
jmp 0x10045227
mov eax, dword [0x10098fbc]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
not eax
and ecx, 0xbc422bfa
mov edx, eax
and edx, 0x43bdd405
or edx, ecx
xor edx, 0x43bdd404
and eax, 0xfffffffe
or eax, edx
xor eax, 0xffffffff
sete al
setne ah
cmp dword [0x10098fc0], 0xa
setl dl
setge cl
and al, cl
or cl, ah
and dl, ah
or dl, al
mov eax, ecx
xor al, dl
mov ebp, 0x6122f6a9
mov eax, 0x175eaf55
jne 0x100457b0
mov ebp, 0x175eaf55
test dl, dl
cmove eax, ebp
test cl, cl
cmovne eax, ebp
jmp 0x10045227
push dword [0x10098b98]
push esi
call fcn.10005bb4
add esp, 8
mov ecx, dword [0x10098fbc]
lea eax, [ecx + 1]
imul eax, ecx
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0xfffffffe
and eax, 1
or eax, edx
not eax
or eax, ecx
xor eax, 0xffffffff
sete al
setne dl
cmp dword [0x10098fc0], 0xa
setge ah
setl ch
mov cl, ch
xor cl, dl
and cl, ch
and ah, al
and ch, dl
or ch, ah
mov dl, ch
xor dl, cl
mov ebp, 0xde072640
mov eax, 0xe8820b5f
mov edi, 0xde072640
test ch, ch
jne 0x1004582a
mov edi, 0xe8820b5f
test cl, cl
cmovne eax, edi
jmp 0x100458f1
cmp byte [esp + 3], 0
mov eax, 0x31c43769
jne 0x10045227
mov eax, 0x28783768
jmp 0x10045227
push 0x103
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov dword [esp + 4], ebx
mov eax, 0x12aa5590
jmp 0x10045227
mov eax, 0xc19772bf
jmp 0x10045227
push dword [0x10098b98]
push esi
call fcn.10005bb4
add esp, 8
mov eax, 0x9a49680b
jmp 0x10045227
mov eax, 0x1dbee77
jmp 0x10045227
mov eax, 0xdc147210
jmp 0x10045227
mov eax, 0x5cf634f2
jmp 0x10045227
mov ecx, dword [0x10098fbc]
lea eax, [ecx + 1]
imul eax, ecx
not al
or al, 0xfe
cmp al, 0xff
setne al
cmp dword [0x10098fc0], 0xa
setge ch
mov cl, ch
xor cl, al
or ch, al
mov dl, ch
xor dl, cl
mov ebp, 0xeb9fa1ad
mov eax, 0x75d629c9
mov edi, 0xeb9fa1ad
test ch, ch
jne 0x100458ec
mov edi, 0x75d629c9
test cl, cl
cmovne ebp, edi
test dl, dl
cmovne eax, ebp
jmp 0x10045227
cmp eax, 0xcb666a46
jne 0x10045227
jmp 0x10045913
cmp eax, 0x413df0a4
jne 0x10045227
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]