Function at 0x4915d4
Capabilities:
Create process on windows
Get common file path
Print debug messages
Read .ini file

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, 0x3358
call fcn.004a98b0
mov eax, dword [0x4dd52c]
mov dword [ebp - 4], eax
xor eax, eax
push ebx
mov ebx, dword [ebp + 8]
mov ax, word [ebx + 0x5c]
push esi
push edi
or dword [ebp - 0x3314], 0xffffffff
or dword [ebp - 0x3318], 0xffffffff
xor edx, edx
push 7
mov dword [ebp - 0x330c], eax
xor eax, eax
mov ax, word [ebx + 0x13a]
pop ecx
mov word [ebp - 0x24], dx
lea edi, [ebp - 0x22]
mov word [ebp - 0x20ec], dx
push ebx
mov dword [ebp - 0x331c], edx
mov dword [ebp - 0x3310], eax
xor eax, eax
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov ecx, 0x3ff
lea edi, [ebp - 0x20ea]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
lea edi, [ebx + 0x16847]
stosd dword es:[edi], eax
stosb byte es:[edi], al
call fcn.0049031f
xor esi, esi
inc esi
cmp word [ebx + 0x68], si
jne 0x4916bf
mov dword [ebx + 0x16784], esi
cmp word [ebx + 0x1977e], 2
jne 0x491694
cmp word [ebx + 0x57a], 0
jne 0x491694
cmp dword [ebx + 0x1e068], 0
jne 0x491694
mov eax, dword [ebx + 0x5020]
mov dword [ebx + 0x16934], eax
jmp 0x49169a
mov dword [ebx + 0x16934], esi
cmp dword [ebx + 0x1e068], esi
jne 0x4916ab
and dword [ebx + 0x16944], 0
jmp 0x4916d1
push ebx
call fcn.0045db24
dec eax
neg eax
sbb eax, eax
inc eax
mov dword [ebx + 0x16944], eax
jmp 0x4916d1
mov eax, dword [ebx + 0x5020]
mov dword [ebx + 0x16784], eax
mov dword [ebx + 0x16934], esi
lea eax, [ebp - 0x331c]
push eax
lea eax, [ebp - 0x3310]
push eax
lea eax, [ebp - 0x330c]
push eax
push ebx
call fcn.004a4f11
xor ecx, ecx
cmp dword [ebp - 0x331c], ecx
jne 0x491720
cmp word [ebx + 0x368], cx
jne 0x491707
cmp byte [ebx + 0xd10], cl
je 0x491720
mov ax, word [ebx + 0x5c]
mov word [ebp - 0x330c], ax
mov ax, word [ebx + 0x13a]
mov word [ebp - 0x3310], ax
movsx eax, word [ebp - 0x330c]
mov dword [ebx + 0x16788], eax
mov ax, word [ebx + 0x57a]
cmp ax, si
je 0x49173f
cmp ax, 2
jne 0x491784
cmp word [ebx + 0x368], cx
jne 0x491784
test byte [ebx + 0x51e8], 1
jne 0x491784
push 0x98
push ebx
call fcn.004a53d4
cmp eax, esi
jne 0x491769
movsx eax, word [ebp - 0x330c]
jmp 0x49177e
push ebx
call fcn.004a6cba
sub ax, 6
neg ax
sbb eax, eax
and eax, 0xfffffffb
add eax, 6
mov dword [ebx + 0x16788], eax
movsx eax, word [ebp - 0x3310]
push 8
pop ecx
lea edx, [ebx + 0x168e0]
mov dword [ebx + 0x1678c], eax
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
xor edi, edi
push edi
push edi
push edx
push dword [ebp - 0x3310]
push ebx
call fcn.004a50e2
mov dword [ebx + 0x16790], edi
cmp word [ebx + 0x5da], si
je 0x4917c9
cmp word [ebx + 0x57a], si
jne 0x4917cf
mov dword [ebx + 0x16790], esi
mov dword [ebx + 0x1692c], 0xff
mov ax, word [ebx + 0x57a]
cmp ax, si
push 2
pop edi
je 0x49189e
cmp ax, di
je 0x49189e
push 0x55
push ebx
call fcn.004a53d4
cmp eax, esi
jne 0x49182e
mov ax, word [ebx + 0x5da]
cmp ax, si
je 0x491812
cmp ax, di
jne 0x49182e
xor eax, eax
cmp dword [ebx + 0x16790], esi
mov dword [ebx + 0x1692c], esi
setne al
add eax, edi
mov word [ebx + 0x199fc], ax
jmp 0x4918a4
push 0x55
push ebx
call fcn.004a53d4
cmp eax, esi
jne 0x491854
cmp word [ebx + 0x5da], 0
jne 0x491854
and dword [ebx + 0x1692c], 0
mov word [ebx + 0x199fc], si
jmp 0x4918a4
push 0x55
push ebx
call fcn.004a53d4
cmp eax, esi
jne 0x49188a
cmp word [ebx + 0x5da], 3
jne 0x49188a
lea eax, [ebx + 0x199fc]
mov cx, word [eax]
cmp cx, di
je 0x49187e
cmp cx, 3
jne 0x49188a
and dword [ebx + 0x1692c], 0
mov word [eax], si
jmp 0x4918a4
mov dword [ebx + 0x1692c], 0xff
and word [ebx + 0x199fc], 0
jmp 0x4918a4
mov dword [ebx + 0x1692c], edi
mov ax, word [ebx + 0x57a]
cmp ax, si
je 0x4918d5
cmp ax, di
je 0x4918d5
movsx eax, word [ebx + 0x18934]
sub eax, edi
je 0x4918c9
and dword [ebx + 0x16794], 0
jmp 0x4918e4
mov dword [ebx + 0x16794], 0xff
jmp 0x4918e4
movzx eax, byte [ebx + 0x51e8]
and eax, esi
mov dword [ebx + 0x16794], eax
push 0x10
lea eax, [ebp - 0x24]
push eax
movzx eax, byte [ebx + 0xccc]
push eax
push 0x66
push ebx
call fcn.004a5f06
test eax, eax
je 0x49190f
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.msvcrt.dll__wtoi]
pop ecx
mov dword [ebp - 0x3314], eax
push 8
pop ecx
xor eax, eax
push 0x10
lea edi, [ebp - 0x24]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x24]
push eax
movzx eax, byte [ebx + 0xccc]
push eax
push 0x65
push ebx
call fcn.004a5f06
test eax, eax
je 0x491944
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.msvcrt.dll__wtoi]
pop ecx
mov dword [ebp - 0x3318], eax
movsx eax, word [ebx + 0x142]
mov dword [ebx + 0x16798], eax
movsx eax, word [ebx + 0x64]
mov dword [ebx + 0x1679c], eax
movsx eax, word [ebx + 0x18934]
dec eax
dec eax
je 0x49196f
movzx eax, word [ebx + 0xa29]
jmp 0x491973
movsx eax, word [ebx + 0x5e]
cmp dword [ebx + 0x1679c], 0x4b0
mov dword [ebx + 0x167a0], eax
jne 0x491995
cmp word [ebp - 0x3318], 2
jne 0x491995
mov dword [ebx + 0x16930], esi
movzx eax, word [ebx + 0xa3f]
mov dword [ebx + 0x167a4], eax
movsx eax, word [ebx + 0x50]
mov dword [ebx + 0x167a8], eax
cmp word [ebx + 0xa61], si
push 0x32
pop edi
jne 0x491a4a
mov ax, word [ebx + 0xa2d]
mov word [ebx + 0x167ac], ax
mov ax, word [ebx + 0xa2f]
mov word [ebx + 0x167ae], ax
mov ax, word [ebx + 0xa31]
mov word [ebx + 0x167b0], ax
mov ax, word [ebx + 0xa33]
mov word [ebx + 0x167b2], ax
mov ax, word [ebx + 0xa35]
mov word [ebx + 0x167b4], ax
mov ax, word [ebx + 0xa37]
mov word [ebx + 0x167b6], ax
mov ax, word [ebx + 0xa39]
mov word [ebx + 0x167b8], ax
mov ax, word [ebx + 0xa3b]
mov word [ebx + 0x167ba], ax
mov ax, word [ebx + 0xa3d]
mov word [ebx + 0x167bc], ax
mov ax, word [ebx + 0xa43]
mov word [ebx + 0x167be], ax
jmp 0x491a90
mov word [ebx + 0x167ac], di
mov word [ebx + 0x167ae], di
mov word [ebx + 0x167b0], di
mov word [ebx + 0x167b2], di
mov word [ebx + 0x167b4], di
mov word [ebx + 0x167b6], di
mov word [ebx + 0x167b8], di
mov word [ebx + 0x167ba], di
mov word [ebx + 0x167bc], di
mov word [ebx + 0x167be], di
cmp byte [ebx + 0x1f3e], 1
jne 0x491abf
mov al, byte [ebx + 0x1f3f]
mov byte [ebx + 0x1683b], al
mov al, byte [ebx + 0x1f41]
mov byte [ebx + 0x1683c], al
mov al, byte [ebx + 0x1f43]
mov byte [ebx + 0x1683d], al
jmp 0x491ad4
mov byte [ebx + 0x1683b], 0
mov byte [ebx + 0x1683c], 0
mov byte [ebx + 0x1683d], 0
push 0x8a
push ebx
call fcn.004a53d4
cmp eax, esi
jne 0x491aef
mov al, byte [ebx + 0xd5f]
mov byte [ebx + 0x16829], al
push 0x70
push ebx
call fcn.004a53d4
cmp eax, esi
jne 0x491b07
mov al, byte [ebx + 0xcd6]
mov byte [ebx + 0x16827], al
push 0x6f
push ebx
call fcn.004a53d4
cmp eax, esi
jne 0x491b1f
mov al, byte [ebx + 0xcd5]
mov byte [ebx + 0x16828], al
push 0x89
push ebx
call fcn.004a5754
push 0x8b
push ebx
mov byte [ebx + 0x16826], al
call fcn.004a53d4
cmp eax, esi
jne 0x491b4b
mov al, byte [ebx + 0xd5e]
mov byte [ebx + 0x1682a], al
push 0xe6
push ebx
call fcn.004a53d4
cmp eax, esi
jne 0x491b6f
cmp byte [ebx + 0xd5e], 6
jne 0x491b6f
mov al, byte [ebx + 0x245b]
mov byte [ebx + 0x1684c], al
push 0xaf
push ebx
call fcn.004a53d4
cmp eax, esi
jne 0x491bb1
push 0xb7
push ebx
call fcn.004a5754
cmp byte [ebx + 0x1682a], 1
jne 0x491bb8
test al, al
je 0x491ba8
cmp al, 3
mov byte [ebx + 0x1682b], al
jne 0x491bb8
push ebx
call fcn.004910f0
jmp 0x491bb8
mov byte [ebx + 0x1682b], 1
jmp 0x491bb8
mov byte [ebx + 0x1682b], 0
movzx ax, byte [ebx + 0x197b6]
test ax, ax
mov word [ebx + 0x168bc], ax
je 0x491bd3
mov word [ebx + 0x167ac], di
cmp dword [ebx + 0x1e380], 0
jne 0x49224b
push 0xe3
push ebx
call fcn.004a53d4
mov edx, eax
mov byte [ebx + 0x16847], dl
cmp dword [ebx + 0x1dfa8], 1
mov esi, 0x800
jne 0x491d1a
mov eax, dword [ebx + 0x1dfac]
test eax, eax
je 0x491d1a
cmp eax, 3
jb 0x491d1a
and word [ebp - 0x30ec], 0
xor eax, eax
mov ecx, 0x3ff
lea edi, [ebp - 0x30ea]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
movzx eax, dl
push eax
push 0x41436c
lea eax, [ebp - 0x30ec]
push esi
push eax
call fcn.00431bde
add esp, 0x10
cmp dword [ebx + 0x1dfa8], 1
jne 0x491d1a
mov eax, dword [ebx + 0x1dfac]
test eax, eax
je 0x491d1a
cmp eax, 3
jb 0x491d1a
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea eax, [ebp - 0x3308]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
xor eax, eax
mov ecx, 0x400
lea edi, [ebp - 0x20ec]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x30ec]
push eax
movzx eax, word [ebp - 0x32fa]
push 0x414350
push eax
movzx eax, word [ebp - 0x32fc]
push eax
movzx eax, word [ebp - 0x32fe]
push eax
movzx eax, word [ebp - 0x3300]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x4065a0
lea eax, [ebp - 0x20ec]
push esi
push eax
call fcn.00431bde
add esp, 0x2c
cmp word [ebx + 0x1dfa0], 1
lea eax, [ebp - 0x20ec]
push eax
jne 0x491cfc
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x491d1a
lea edi, [ebx + 0x1dfa4]
push 0x4060a8
push dword [edi]
call dword [sym.imp.msvcrt.dll_fwprintf]
push dword [edi]
call dword [sym.imp.msvcrt.dll_fflush]
add esp, 0x10
cmp byte [ebx + 0x16847], 1
jne 0x4922e0
and dword [ebp - 0x32f8], 0
lea eax, [ebp - 0x32f8]
push eax
push 0x414334
push 0x414320
push ebx
call fcn.00431768
cmp eax, 1
jne 0x491e7b
mov dl, byte [ebp - 0x32f8]
mov byte [ebx + 0x16848], dl
cmp dword [ebx + 0x1dfa8], eax
jne 0x491e7b
mov eax, dword [ebx + 0x1dfac]
test eax, eax
je 0x491e7b
cmp eax, 3
jb 0x491e7b
and word [ebp - 0x30ec], 0
xor eax, eax
mov ecx, 0x3ff
lea edi, [ebp - 0x30ea]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
movzx eax, dl
push eax
push 0x4142e0
lea eax, [ebp - 0x30ec]
push esi
push eax
call fcn.00431bde
add esp, 0x10
cmp dword [ebx + 0x1dfa8], 1
jne 0x491e7b
mov eax, dword [ebx + 0x1dfac]
test eax, eax
je 0x491e7b
cmp eax, 3
jb 0x491e7b
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea eax, [ebp - 0x3308]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
xor eax, eax
mov ecx, 0x400
lea edi, [ebp - 0x20ec]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x30ec]
push eax
movzx eax, word [ebp - 0x32fa]
push 0x414350
push eax
movzx eax, word [ebp - 0x32fc]
push eax
movzx eax, word [ebp - 0x32fe]
push eax
movzx eax, word [ebp - 0x3300]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x4065a0
lea eax, [ebp - 0x20ec]
push esi
push eax
call fcn.00431bde
add esp, 0x2c
cmp word [ebx + 0x1dfa0], 1
lea eax, [ebp - 0x20ec]
push eax
jne 0x491e5d
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x491e7b
lea edi, [ebx + 0x1dfa4]
push 0x4060a8
push dword [edi]
call dword [sym.imp.msvcrt.dll_fwprintf]
push dword [edi]
call dword [sym.imp.msvcrt.dll_fflush]
add esp, 0x10
lea eax, [ebp - 0x32f8]
push eax
push 0x4142bc
push 0x414320
push ebx
call fcn.00431768
cmp eax, 1
jne 0x491fc8
mov dl, byte [ebp - 0x32f8]
mov byte [ebx + 0x16849], dl
cmp dword [ebx + 0x1dfa8], eax
jne 0x491fc8
mov eax, dword [ebx + 0x1dfac]
test eax, eax
je 0x491fc8
cmp eax, 3
jb 0x491fc8
and word [ebp - 0x30ec], 0
xor eax, eax
mov ecx, 0x3ff
lea edi, [ebp - 0x30ea]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
movzx eax, dl
push eax
push 0x414278
lea eax, [ebp - 0x30ec]
push esi
push eax
call fcn.00431bde
add esp, 0x10
cmp dword [ebx + 0x1dfa8], 1
jne 0x491fc8
mov eax, dword [ebx + 0x1dfac]
test eax, eax
je 0x491fc8
cmp eax, 3
jb 0x491fc8
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea eax, [ebp - 0x3308]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
xor eax, eax
mov ecx, 0x400
lea edi, [ebp - 0x20ec]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x30ec]
push eax
movzx eax, word [ebp - 0x32fa]
push 0x414350
push eax
movzx eax, word [ebp - 0x32fc]
push eax
movzx eax, word [ebp - 0x32fe]
push eax
movzx eax, word [ebp - 0x3300]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x4065a0
lea eax, [ebp - 0x20ec]
push esi
push eax
call fcn.00431bde
add esp, 0x2c
cmp word [ebx + 0x1dfa0], 1
lea eax, [ebp - 0x20ec]
push eax
jne 0x491faa
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x491fc8
lea edi, [ebx + 0x1dfa4]
push 0x4060a8
push dword [edi]
call dword [sym.imp.msvcrt.dll_fwprintf]
push dword [edi]
call dword [sym.imp.msvcrt.dll_fflush]
add esp, 0x10
lea eax, [ebp - 0x32f8]
push eax
push 0x41424c
push 0x414320
push ebx
call fcn.00431768
cmp eax, 1
jne 0x492115
mov dl, byte [ebp - 0x32f8]
mov byte [ebx + 0x1684a], dl
cmp dword [ebx + 0x1dfa8], eax
jne 0x492115
mov eax, dword [ebx + 0x1dfac]
test eax, eax
je 0x492115
cmp eax, 3
jb 0x492115
and word [ebp - 0x30ec], 0
xor eax, eax
mov ecx, 0x3ff
lea edi, [ebp - 0x30ea]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
movzx eax, dl
push eax
push 0x414200
lea eax, [ebp - 0x30ec]
push esi
push eax
call fcn.00431bde
add esp, 0x10
cmp dword [ebx + 0x1dfa8], 1
jne 0x492115
mov eax, dword [ebx + 0x1dfac]
test eax, eax
je 0x492115
cmp eax, 3
jb 0x492115
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea eax, [ebp - 0x3308]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
xor eax, eax
mov ecx, 0x400
lea edi, [ebp - 0x20ec]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x30ec]
push eax
movzx eax, word [ebp - 0x32fa]
push 0x414350
push eax
movzx eax, word [ebp - 0x32fc]
push eax
movzx eax, word [ebp - 0x32fe]
push eax
movzx eax, word [ebp - 0x3300]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x4065a0
lea eax, [ebp - 0x20ec]
push esi
push eax
call fcn.00431bde
add esp, 0x2c
cmp word [ebx + 0x1dfa0], 1
lea eax, [ebp - 0x20ec]
push eax
jne 0x4920f7
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x492115
lea edi, [ebx + 0x1dfa4]
push 0x4060a8
push dword [edi]
call dword [sym.imp.msvcrt.dll_fwprintf]
push dword [edi]
call dword [sym.imp.msvcrt.dll_fflush]
add esp, 0x10
lea eax, [ebp - 0x32f8]
push eax
push 0x4141ec
push 0x414320
push ebx
call fcn.00431768
cmp eax, 1
jne 0x4922e0
mov dl, byte [ebp - 0x32f8]
mov byte [ebx + 0x1684b], dl
cmp dword [ebx + 0x1dfa8], eax
jne 0x4922e0
mov eax, dword [ebx + 0x1dfac]
test eax, eax
je 0x4922e0
cmp eax, 3
jb 0x4922e0
and word [ebp - 0x30ec], 0
xor eax, eax
mov ecx, 0x3ff
lea edi, [ebp - 0x30ea]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
movzx eax, dl
push eax
push 0x4141b4
lea eax, [ebp - 0x30ec]
push esi
push eax
call fcn.00431bde
add esp, 0x10
cmp dword [ebx + 0x1dfa8], 1
jne 0x4922e0
mov eax, dword [ebx + 0x1dfac]
test eax, eax
je 0x4922e0
cmp eax, 3
jb 0x4922e0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea eax, [ebp - 0x3308]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
xor eax, eax
mov ecx, 0x400
lea edi, [ebp - 0x20ec]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x30ec]
push eax
movzx eax, word [ebp - 0x32fa]
push 0x414350
push eax
movzx eax, word [ebp - 0x32fc]
push eax
movzx eax, word [ebp - 0x32fe]
push eax
movzx eax, word [ebp - 0x3300]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x4065a0
lea eax, [ebp - 0x20ec]
push esi
push eax
call fcn.00431bde
add esp, 0x2c
cmp word [ebx + 0x1dfa0], 1
lea eax, [ebp - 0x20ec]
push eax
jne 0x4922c2
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x4922e0
cmp dword [ebx + 0x1dfa8], esi
mov word [ebx + 0xa6b], 0xff
jne 0x4922e0
mov eax, dword [ebx + 0x1dfac]
test eax, eax
je 0x4922e0
cmp eax, 2
jb 0x4922e0
and word [ebp - 0x30ec], 0
xor eax, eax
mov ecx, 0x3ff
lea edi, [ebp - 0x30ea]
rep stosd dword es:[edi], eax
push 0xff
push 0x414168
stosw word es:[edi], ax
mov esi, 0x800
lea eax, [ebp - 0x30ec]
push esi
push eax
call fcn.00431bde
add esp, 0x10
cmp dword [ebx + 0x1dfa8], 1
jne 0x4922e0
mov eax, dword [ebx + 0x1dfac]
test eax, eax
je 0x4922e0
cmp eax, 2
jmp 0x4921b4
lea esi, [ebx + 0x1dfa4]
push 0x4060a8
push dword [esi]
call dword [sym.imp.msvcrt.dll_fwprintf]
push dword [esi]
call dword [sym.imp.msvcrt.dll_fflush]
add esp, 0x10
push 4
xor esi, esi
push ebx
mov dword [ebp - 0x32f8], esi
call fcn.004a53d4
cmp eax, 1
jne 0x4923c6
push esi
push esi
push 4
push ebx
call fcn.004a6715
cmp eax, esi
je 0x49234b
mov esi, eax
shl esi, 2
push esi
push 0
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov edi, eax
test edi, edi
je 0x492349
push esi
push edi
push 4
push ebx
call fcn.004a6715
xor ecx, ecx
test eax, eax
jbe 0x492342
cmp dword [edi + ecx*4], 3
je 0x492338
inc ecx
cmp ecx, eax
jb 0x49232b
jmp 0x492342
mov dword [ebp - 0x32f8], 1
push edi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
xor esi, esi
cmp byte [ebx + 0xdd3], 3
jne 0x49235c
mov cl, byte [ebx + 0xdd2]
jmp 0x492362
mov cl, byte [ebx + 0x1b84e]
movsx eax, word [ebx + 0xa6b]
cmp eax, esi
je 0x492383
jle 0x4923c0
cmp eax, 3
jle 0x49237b
cmp eax, 0xff
jne 0x4923c0
mov dword [ebx + 0x167c0], eax
jmp 0x4923c6
cmp dword [ebp - 0x32f8], 1
jne 0x4923c0
movzx eax, cl
sub eax, esi
je 0x4923c0
dec eax
je 0x4923b4
dec eax
je 0x4923a8
dec eax
jne 0x4923c0
mov dword [ebx + 0x167c0], 0x13
jmp 0x4923c6
mov dword [ebx + 0x167c0], 0x12
jmp 0x4923c6
mov dword [ebx + 0x167c0], 0x11
jmp 0x4923c6
mov dword [ebx + 0x167c0], esi
mov al, byte [ebx + 0xb0b]
mov byte [ebx + 0x167ce], al
mov al, byte [ebx + 0xd62]
mov byte [ebx + 0x167cf], al
mov al, byte [ebx + 0xc92]
mov byte [ebx + 0x168be], al
mov al, byte [ebx + 0xc50]
mov byte [ebx + 0x168bf], al
mov al, byte [ebx + 0xde0]
mov byte [ebx + 0x168bb], al
lea edi, [ebx + 0x167c4]
lea esi, [ebx + 0x189f8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0xb5
push ebx
movsw word es:[edi], word [esi]
call fcn.004a53d4
test eax, eax
jne 0x492427
mov byte [ebx + 0x167c4], al
push 0xb6
push ebx
call fcn.004a53d4
test eax, eax
jne 0x492442
mov byte [ebx + 0x167c8], al
mov byte [ebx + 0x167ca], al
xor eax, eax
xor esi, esi
push 0x10
mov edx, 0x81
pop ecx
mov word [ebp - 0x68], si
lea edi, [ebp - 0x66]
rep stosd dword es:[edi], eax
mov word [ebp - 0x8cc], si
mov ecx, edx
lea edi, [ebp - 0x8ca]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov word [ebp - 0xcdc], si
mov ecx, edx
lea edi, [ebp - 0xcda]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov word [ebp - 0x6c4], si
mov ecx, edx
lea edi, [ebp - 0x6c2]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov word [ebp - 0x2b4], si
mov ecx, edx
lea edi, [ebp - 0x2b2]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov word [ebp - 0x4bc], si
mov ecx, edx
lea edi, [ebp - 0x4ba]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov word [ebp - 0xad4], si
mov ecx, edx
lea edi, [ebp - 0xad2]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x10
xor eax, eax
pop ecx
mov word [ebp - 0xac], si
lea edi, [ebp - 0xaa]
rep stosd dword es:[edi], eax
mov word [ebp - 0x32f4], si
mov ecx, edx
lea edi, [ebp - 0x32f2]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov word [ebp - 0xee4], si
mov ecx, edx
lea edi, [ebp - 0xee2]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov word [ebp - 0x10ec], si
mov ecx, edx
lea edi, [ebp - 0x10ea]
rep stosd dword es:[edi], eax
push 0x42
stosw word es:[edi], ax
lea eax, [ebp - 0x68]
push eax
push 0x45
push ebx
call fcn.004a5ad4
test eax, eax
je 0x4927bc
and dword [ebp - 0x32f8], esi
mov edi, dword [sym.imp.msvcrt.dll_swprintf]
mov esi, 0x414154
push esi
lea edx, [ebp - 0x68]
push edx
lea eax, [ebx + 0x19a24]
push eax
lea ecx, [ebx + 0x19c2c]
push ecx
lea eax, [ebp - 0x8cc]
push 0x414140
push eax
mov byte [ebx + 0x1683e], 0
call edi
push 0x414130
lea eax, [ebx + 0x19a24]
push eax
lea eax, [ebx + 0x19c2c]
push eax
lea eax, [ebp - 0x4bc]
push 0x40c25c
push eax
call edi
add esp, 0x2c
push 0x405a00
lea eax, [ebx + 0x19a24]
push eax
lea eax, [ebp - 0x32f8]
push eax
call fcn.004805f0
test eax, eax
jne 0x492609
push 0x208
lea eax, [ebp - 0x2b4]
push eax
push 0x41411c
push dword [ebp - 0x32f8]
call fcn.004807ae
test eax, eax
je 0x4925fb
lea eax, [ebp - 0x4bc]
push eax
push 0x104
lea eax, [ebp - 0x2b4]
push eax
push 0x405a00
push 0x41411c
push 0x414108
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push dword [ebp - 0x32f8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x492631
lea eax, [ebp - 0x4bc]
push eax
push 0x104
lea eax, [ebp - 0x2b4]
push eax
push 0x405a00
push 0x41411c
push 0x414108
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0xad4]
push eax
push 1
push 0
push 0x23
push 0
call sub.SHELL32.dll_SHGetFolderPathW
push esi
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x2b4]
push eax
lea eax, [ebp - 0xad4]
push eax
lea eax, [ebp - 0x6c4]
push 0x4140d0
push eax
call edi
push esi
lea eax, [ebp - 0x68]
push eax
lea eax, [ebx + 0x19c2c]
push eax
lea eax, [ebp - 0xcdc]
push 0x40c25c
push eax
call edi
add esp, 0x2c
lea eax, [ebp - 0x8cc]
push eax
push ebx
call fcn.004902b2
cmp eax, 1
jne 0x4926b3
lea eax, [ebp - 0x68]
push eax
lea eax, [ebx + 0x19a24]
push eax
lea eax, [ebp - 0xac]
push 0x40c26c
push eax
call edi
jmp 0x4927a6
lea eax, [ebp - 0x6c4]
push eax
push ebx
call fcn.004902b2
cmp eax, 1
je 0x492786
lea eax, [ebp - 0xcdc]
push eax
push ebx
call fcn.004902b2
cmp eax, 1
jne 0x4926e3
lea esi, [ebp - 0x68]
jmp 0x4927af
lea esi, [ebx + 0x1a468]
push esi
lea eax, [ebp - 0x32f4]
push 0x4060a8
push eax
call edi
lea eax, [ebx + 0x19a24]
push eax
lea eax, [ebx + 0x19c2c]
push eax
lea eax, [ebp - 0x10ec]
push 0x4140bc
push eax
call edi
push esi
lea eax, [ebp - 0xee4]
push 0x41408c
push eax
call edi
and dword [ebp - 0x333c], 0
lea eax, [ebp - 0x10ec]
mov dword [ebp - 0x3348], eax
lea eax, [ebp - 0xee4]
mov dword [ebp - 0x3344], eax
add esp, 0x28
lea eax, [ebp - 0x3358]
push eax
mov dword [ebp - 0x3358], 0x3c
mov dword [ebp - 0x3354], 0x40
mov dword [ebp - 0x334c], 0x414080
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
test eax, eax
je 0x4927bc
lea eax, [ebp - 0x6c4]
push eax
push ebx
call fcn.004902b2
cmp eax, 1
jne 0x4927bc
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x2b4]
push eax
lea eax, [ebp - 0xac]
push 0x414054
push eax
call edi
mov byte [ebx + 0x1683e], 1
add esp, 0x10
lea esi, [ebp - 0xac]
push 0x10
lea edi, [ebx + 0x167d0]
pop ecx
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
xor eax, eax
lea edi, [ebx + 0x16812]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
movsx eax, word [ebx + 0x5e]
cmp eax, 0x258
push 0x14
pop ecx
je 0x4927fe
cmp eax, 0x4b0
jne 0x492838
movsx eax, word [ebp - 0x3314]
dec eax
dec eax
push 0x1e
pop ecx
jne 0x4927ef
push 0x24
pop ecx
movsx eax, word [ebp - 0x3318]
dec eax
dec eax
jne 0x492838
push 0x25
jmp 0x492837
movzx eax, word [ebx + 0xa29]
push 2
pop edx
sub eax, edx
je 0x49281f
sub eax, edx
je 0x49281b
sub eax, 0x4ac
jne 0x492822
push 0x1f
jmp 0x492821
push 0x16
jmp 0x492821
push 0x15
pop ecx
movsx eax, word [ebp - 0x3314]
sub eax, edx
je 0x492835
sub eax, edx
jne 0x492838
push 0x16
jmp 0x492837
push 0x15
pop ecx
movzx eax, byte [ebx + 0xc50]
dec eax
je 0x492855
dec eax
je 0x492851
dec eax
je 0x49284c
xor eax, eax
jmp 0x492858
push 3
pop eax
jmp 0x492858
push 2
jmp 0x49284e
xor eax, eax
inc eax
mov byte [ebx + 0x16813], cl
mov byte [ebx + 0x1681a], al
movsx eax, word [ebx + 0x13e]
mov dword [ebx + 0x168c0], eax
movsx eax, word [ebx + 0x9db]
mov dword [ebx + 0x168c4], eax
movzx eax, word [ebx + 0xa27]
push 0x11
push ebx
mov dword [ebx + 0x168c8], eax
call fcn.004a5754
push 0x12
push ebx
mov dword [ebx + 0x168cc], eax
call fcn.004a5754
mov dword [ebx + 0x168d0], eax
mov eax, dword [ebx + 0xa5d]
mov dword [ebx + 0x168d4], eax
mov al, byte [ebx + 0x189da]
cmp al, 1
je 0x4928d6
cmp al, 2
je 0x4928d6
cmp al, 3
je 0x4928d6
cmp al, 4
je 0x4928d6
movzx eax, byte [ebx + 0x189cd]
mov dword [ebx + 0x168dc], eax
xor eax, eax
mov al, byte [ebx + 0xdca]
push eax
call fcn.00493556
mov dword [ebx + 0x16920], eax
xor eax, eax
mov al, byte [ebx + 0xdc9]
push eax
call fcn.00493591
mov ecx, dword [ebp - 4]
mov dword [ebx + 0x16924], eax
movzx eax, byte [ebx + 0xdc7]
mov dword [ebx + 0x16928], eax
movsx eax, word [ebx + 0xa6d]
pop edi
pop esi
mov dword [ebx + 0x1693c], eax
pop ebx
call fcn.004a9585
leave
ret 4