Function at 0x446420
Capabilities:
Encode data using xor
Get common file path

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff44c
push ebx
push esi
push edi
mov byte [ebp - 6], cl
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
mov edi, dword [ebp + 0x10]
mov ebx, 0x4b04dc
lea eax, [ebx + 0x34]
call fcn.00463f60
mov dword [ebp - 0xc], eax
cmp edi, 0xffffffff
jne 0x4464a6
mov edi, dword [ebp - 0xc]
xor esi, esi
cmp edi, esi
jle 0x4464a6
push esi
lea eax, [ebx + 0x34]
push eax
lea edx, [ebp - 0x2b0]
push edx
call fcn.004a2e18
add esp, 0xc
lea ecx, [ebx + 0xb]
lea edx, [ebx + 0x40]
lea eax, [ebp - 0x2b0]
push ecx
lea ecx, [ebp - 0x260]
push pe_nt_image_headers32
call fcn.00463c14
push dword [ebp + 0xc]
lea eax, [ebp - 0x260]
push eax
call fcn.0049fd88
add esp, 8
test eax, eax
jne 0x4464a1
mov edi, esi
jmp 0x4464a6
inc esi
cmp edi, esi
jg 0x446456
cmp dword [ebp + 8], 0
je 0x4464be
lea eax, [ebp - 0x60]
mov ecx, 0x50
mov edx, dword [ebp + 8]
call fcn.0040ffdc
jmp 0x4464cf
push edi
lea eax, [ebx + 0x34]
push eax
lea edx, [ebp - 0x60]
push edx
call fcn.004a2e18
add esp, 0xc
lea edx, [ebx + 0x40]
lea eax, [ebp - 0x60]
mov ecx, dword [ebp + 0xc]
call fcn.004639f0
cmp byte [ebp - 6], 0
je 0x446514
xor esi, esi
cmp esi, dword [ebp - 0xc]
jge 0x446514
push esi
lea eax, [ebx + 0x34]
push eax
lea edx, [ebp - 0x300]
push edx
call fcn.004a2e18
add esp, 0xc
lea edx, [ebx + 0x45]
lea eax, [ebp - 0x300]
xor ecx, ecx
call fcn.00463b18
inc esi
cmp esi, dword [ebp - 0xc]
jl 0x4464ea
xor ecx, ecx
mov cl, byte [ebp - 6]
lea edx, [ebx + 0x45]
lea eax, [ebp - 0x60]
call fcn.00463b18
lea edx, [ebx + 0x63]
lea eax, [ebp - 0x60]
call fcn.00463ef8
lea edx, [ebx + 0x6b]
lea eax, [ebp - 0x60]
call fcn.00463ef8
lea edx, [ebx + 0x75]
lea eax, [ebp - 0x60]
xor ecx, ecx
call fcn.00463b18
cmp dword [ebp - 4], 0
je 0x446633
push 0x6b
push dword [ebp - 4]
call sub.USER32.DLL_IsDlgButtonChecked
mov ecx, eax
lea edx, [ebx + 0x75]
lea eax, [ebp - 0x60]
call fcn.00463b18
push 0x6d
push dword [ebp - 4]
call sub.USER32.DLL_IsDlgButtonChecked
mov ecx, eax
lea edx, [ebx + 0x7d]
lea eax, [ebp - 0x60]
call fcn.00463b18
push 0x66
push dword [ebp - 4]
call sub.USER32.DLL_IsDlgButtonChecked
test eax, eax
je 0x4465b4
push 0x400
lea eax, [ebp - 0x700]
push eax
push 0x67
push dword [ebp - 4]
call sub.USER32.DLL_GetDlgItemTextA
lea ecx, [ebp - 0x700]
lea edx, [ebx + 0x63]
lea eax, [ebp - 0x60]
call fcn.004639f0
push 0x68
push dword [ebp - 4]
call sub.USER32.DLL_IsDlgButtonChecked
test eax, eax
je 0x446633
push 0x69
push dword [ebp - 4]
call sub.USER32.DLL_GetDlgItem
mov edi, eax
push edi
call sub.USER32.DLL_GetWindowTextLengthA
add eax, 0xa
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
add eax, eax
push eax
call fcn.0049e5e4
pop ecx
mov esi, eax
mov ecx, dword [ebp - 0x10]
mov edx, esi
mov eax, edi
call fcn.0046652c
lea edx, [ebx + 0x6b]
lea eax, [ebp - 0x60]
mov ecx, esi
call fcn.00463a50
push esi
call fcn.0049e420
cmp byte [ebp - 5], 0
pop ecx
jne 0x446633
lea eax, [ebp - 0xb00]
push eax
push 0x400
call sub.KERNEL32.DLL_GetCurrentDirectoryA
lea ecx, [ebp - 0xb00]
lea edx, [ebx + 0xa4]
lea eax, [ebp - 0x60]
call fcn.004639f0
cmp byte [ebp - 5], 0
jne 0x446c02
mov eax, dword [0x4c848c]
call fcn.00444cc8
mov esi, eax
mov eax, esi
call fcn.0040fd60
mov ecx, eax
lea edx, [ebx + 0xab]
lea eax, [ebp - 0x60]
call fcn.004639f0
push esi
call fcn.0049e420
pop ecx
mov eax, dword [0x4c8498]
call fcn.00444cc8
mov esi, eax
mov eax, esi
call fcn.0040fd60
mov ecx, eax
lea edx, [ebx + 0xb6]
lea eax, [ebp - 0x60]
call fcn.004639f0
push esi
call fcn.0049e420
pop ecx
cmp dword [0x4c6438], 0
sete cl
and ecx, 1
lea edx, [ebx + 0x14e]
lea eax, [ebp - 0x60]
call fcn.00463b18
mov ecx, 0x4c3598
lea edx, [ebx + 0x155]
lea eax, [ebp - 0x60]
call fcn.004639f0
lea edx, [ebx + 0x15f]
lea eax, [ebp - 0x60]
call fcn.00463ef8
mov ecx, 0x4c643d
lea edx, [ebx + 0x163]
lea eax, [ebp - 0x60]
call fcn.004639f0
mov ecx, 0x4c683d
lea edx, [ebx + 0x177]
lea eax, [ebp - 0x60]
call fcn.004639f0
xor ecx, ecx
mov cl, byte [0x4c6c3d]
lea edx, [ebx + 0x17f]
lea eax, [ebp - 0x60]
call fcn.00463b18
mov ecx, 0x4c4598
lea edx, [ebx + 0x18a]
lea eax, [ebp - 0x60]
call fcn.004639f0
cmp byte [0x4c4598], 0
je 0x44672a
lea esi, [ebx + 0xb]
jmp 0x446736
mov eax, dword [0x4d31f4]
call fcn.0040fd60
mov esi, eax
push esi
call fcn.0049fe04
pop ecx
inc eax
push eax
lea edx, [ebx + 0x192]
lea eax, [ebp - 0x60]
mov ecx, esi
call fcn.00463b68
cmp dword [0x4c5a5c], 0x80000000
jne 0x44677c
cmp dword [0x4c5a58], 0
jne 0x44677c
lea eax, [ebx + 0x3ce]
push eax
lea edx, [ebp - 0xb34]
push edx
call fcn.0049fdd4
add esp, 8
jmp 0x446793
push dword [0x4c5a5c]
push dword [0x4c5a58]
lea eax, [ebp - 0xb34]
call fcn.0040c3e0
lea ecx, [ebp - 0xb34]
lea edx, [ebx + 0x1a6]
lea eax, [ebp - 0x60]
call fcn.004639f0
xor ecx, ecx
mov cl, byte [0x4c5b57]
lea edx, [ebx + 0x1b9]
lea eax, [ebp - 0x60]
call fcn.00463b18
xor ecx, ecx
mov cl, byte [0x4c5b54]
lea edx, [ebx + 0x1c2]
lea eax, [ebp - 0x60]
call fcn.00463b18
lea edx, [ebx + 0x1ce]
lea eax, [ebp - 0x60]
mov ecx, dword [0x4c5a38]
call fcn.00463b18
xor ecx, ecx
mov cl, byte [0x4c5a4d]
lea edx, [ebx + 0x1db]
lea eax, [ebp - 0x60]
call fcn.00463b18
xor ecx, ecx
mov cl, byte [0x4c5a4c]
lea edx, [ebx + 0x1e2]
lea eax, [ebp - 0x60]
call fcn.00463b18
xor ecx, ecx
mov cl, byte [0x4c5a8f]
lea edx, [ebx + 0x1e8]
lea eax, [ebp - 0x60]
call fcn.00463b18
lea edx, [ebx + 0x1f2]
lea eax, [ebp - 0x60]
mov ecx, dword [0x4c5a2c]
call fcn.00463b18
xor ecx, ecx
mov cl, byte [0x4c5a8c]
lea edx, [ebx + 0x1fc]
lea eax, [ebp - 0x60]
call fcn.00463b18
xor ecx, ecx
mov cl, byte [0x4c5a8e]
lea edx, [ebx + 0x201]
lea eax, [ebp - 0x60]
call fcn.00463b18
xor ecx, ecx
mov cl, byte [0x4c5a8d]
lea edx, [ebx + 0x20b]
lea eax, [ebp - 0x60]
call fcn.00463b18
lea edx, [ebx + 0x213]
lea eax, [ebp - 0x60]
mov ecx, dword [0x4c5a40]
call fcn.00463b18
xor ecx, ecx
mov cl, byte [0x4c5a4a]
lea edx, [ebx + 0x219]
lea eax, [ebp - 0x60]
call fcn.00463b18
xor ecx, ecx
mov cl, byte [0x4c5b56]
lea edx, [ebx + 0x21c]
lea eax, [ebp - 0x60]
call fcn.00463b18
lea edx, [ebx + 0x221]
lea eax, [ebp - 0x60]
mov ecx, dword [0x4c5a34]
call fcn.00463b18
xor ecx, ecx
mov cl, byte [0x4c5a89]
lea edx, [ebx + 0x22a]
lea eax, [ebp - 0x60]
call fcn.00463b18
xor ecx, ecx
mov cl, byte [0x4c5a49]
lea edx, [ebx + 0x234]
lea eax, [ebp - 0x60]
call fcn.00463b18
xor ecx, ecx
mov cl, byte [0x4c5a48]
lea edx, [ebx + 0x23f]
lea eax, [ebp - 0x60]
call fcn.00463b18
xor ecx, ecx
mov cl, byte [0x4c5b55]
lea edx, [ebx + 0x248]
lea eax, [ebp - 0x60]
call fcn.00463b18
lea edx, [ebx + 0x24d]
lea eax, [ebp - 0x60]
mov ecx, dword [0x4c5a30]
call fcn.00463b18
lea edx, [ebx + 0x254]
lea eax, [ebp - 0x60]
mov ecx, dword [0x4c3194]
call fcn.00463b18
xor ecx, ecx
mov cl, byte [0x4c6c3e]
lea edx, [ebx + 0x29c]
lea eax, [ebp - 0x60]
call fcn.00463b18
xor ecx, ecx
mov cl, byte [0x4c6c3f]
lea edx, [ebx + 0x2a7]
lea eax, [ebp - 0x60]
call fcn.00463b18
xor ecx, ecx
mov cl, byte [0x4c601e]
lea edx, [ebx + 0x2b4]
lea eax, [ebp - 0x60]
call fcn.00463b18
push 0x4c55a0
lea eax, [ebp - 0xbb4]
push eax
call fcn.0049fdd4
add esp, 8
lea edx, [ebp - 0xbb4]
push edx
call fcn.0049fe04
pop ecx
mov edx, eax
inc edx
xor eax, eax
cmp edx, eax
jle 0x4469d0
mov ecx, eax
add cl, 0x49
xor byte [ebp + eax - 0xbb4], cl
inc eax
cmp edx, eax
jg 0x4469bf
push edx
lea ecx, [ebp - 0xbb4]
lea eax, [ebp - 0x60]
lea edx, [ebx + 0x25f]
call fcn.00463b68
xor ecx, ecx
mov cl, byte [0x4c5620]
lea edx, [ebx + 0x268]
lea eax, [ebp - 0x60]
call fcn.00463b18
xor ecx, ecx
mov cl, byte [0x4c5a8a]
lea edx, [ebx + 0x277]
lea eax, [ebp - 0x60]
call fcn.00463b18
xor ecx, ecx
mov cl, byte [0x4c5a7c]
lea edx, [ebx + 0x282]
lea eax, [ebp - 0x60]
call fcn.00463b18
xor ecx, ecx
mov cl, byte [0x4c5ae2]
lea edx, [ebx + 0x290]
lea eax, [ebp - 0x60]
call fcn.00463b18
xor ecx, ecx
mov cl, byte [0x4c5a90]
lea edx, [ebx + 0x2bd]
lea eax, [ebp - 0x60]
call fcn.00463b18
lea edx, [ebx + 0x2cd]
lea eax, [ebp - 0x60]
mov ecx, dword [0x4c6018]
call fcn.00463b18
mov ecx, 0x4c5a91
lea edx, [ebx + 0x2dc]
lea eax, [ebp - 0x60]
call fcn.004639f0
lea edx, [ebx + 0x307]
lea eax, [ebp - 0x60]
mov ecx, dword [0x4d31fc]
call fcn.00463b18
lea edx, [ebx + 0x314]
lea eax, [ebp - 0x60]
mov ecx, dword [0x4d3200]
call fcn.00463b18
lea edx, [ebx + 0x31d]
lea eax, [ebp - 0x60]
mov ecx, dword [0x4d3204]
call fcn.00463b18
lea edx, [ebx + 0x327]
lea eax, [ebp - 0x60]
mov ecx, dword [0x4d3208]
call fcn.00463b18
mov eax, 0x4c5aec
call fcn.00414e98
mov ecx, eax
lea edx, [ebx + 0x33d]
lea eax, [ebp - 0x60]
call fcn.00463b18
mov eax, 0x4c5b18
call fcn.00414e98
mov ecx, eax
lea edx, [ebx + 0x34c]
lea eax, [ebp - 0x60]
call fcn.00463b18
cmp dword [0x4c5a74], 1
sete cl
and ecx, 1
lea edx, [ebx + 0x35a]
lea eax, [ebp - 0x60]
call fcn.00463b18
cmp dword [0x4c5a74], 2
sete cl
and ecx, 1
lea edx, [ebx + 0x36a]
lea eax, [ebp - 0x60]
call fcn.00463b18
lea edx, [ebx + 0x378]
lea eax, [ebp - 0x60]
mov ecx, dword [0x4c6020]
call fcn.00463b18
lea edx, [ebx + 0x37e]
lea eax, [ebp - 0x60]
mov ecx, dword [0x4c6024]
call fcn.00463b18
lea edx, [ebx + 0x384]
lea eax, [ebp - 0x60]
mov ecx, dword [0x4c6028]
call fcn.00463b18
cmp dword [0x4c5a50], 3
sete cl
and ecx, 1
lea edx, [ebx + 0x38a]
lea eax, [ebp - 0x60]
call fcn.00463b18
cmp dword [0x4c5a50], 2
sete cl
and ecx, 1
lea edx, [ebx + 0x393]
lea eax, [ebp - 0x60]
call fcn.00463b18
cmp dword [0x4c5a50], 5
sete cl
and ecx, 1
lea edx, [ebx + 0x39d]
lea eax, [ebp - 0x60]
call fcn.00463b18
xor ecx, ecx
mov cl, byte [0x4d320e]
lea edx, [ebx + 0x3ab]
lea eax, [ebp - 0x60]
call fcn.00463b18
mov ecx, 0x4c5c18
lea edx, [ebx + 0x3b7]
lea eax, [ebp - 0x60]
call fcn.004639f0
push 0xc0
mov ecx, 0x4c5b58
lea edx, [ebx + 0x3c2]
lea eax, [ebp - 0x60]
call fcn.00463b68
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc