Function at 0x4c45f0
Capabilities:
Create directory
Delete file
Enumerate files on windows
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50d2f5
mov eax, dword fs:[0]
push eax
sub esp, 0xf60
mov eax, dword [0x72400c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 0xeac], ecx
mov eax, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0xeb0], eax
xor eax, eax
mov dword [ebp - 0xea4], ebx
mov dword [ebp - 0x894], 7
mov dword [ebp - 0x898], ebx
mov word [ebp - 0x8a8], ax
mov dword [ebp - 4], eax
lea eax, [ebp - 0x8a8]
push eax
lea eax, [ebp - 0xea8]
push eax
call fcn.004c4020
test al, al
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x894]
sete byte [ebp - 0xe99]
cmp eax, 8
jb 0x4c4695
inc eax
lea ecx, [ebp - 0x8a8]
push eax
push dword [ebp - 0x8a8]
call fcn.004120a0
cmp byte [ebp - 0xe99], 0
jne 0x4c516e
push 0x802
lea eax, [ebp - 0x818]
push 0
push eax
call fcn.004e7b30
add esp, 0xc
lea eax, [ebp - 0x818]
push 0x400
push eax
push str.APPDATA
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x4c516e
lea eax, [ebp - 0x818]
push eax
lea ecx, [ebp - 0x8a8]
call fcn.0040f910
push str.ThunderbirdProfiles_
mov edx, eax
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x890]
call fcn.0041c1a0
add esp, 4
lea ecx, [ebp - 0x8a8]
call fcn.0040f850
xor eax, eax
mov byte [ebp - 0xe9a], 0
mov byte [ebp - 0xea0], 0
mov dword [ebp - 0x81c], 7
mov dword [ebp - 0x820], 0
mov word [ebp - 0x830], ax
push 0x7172e4
lea edx, [ebp - 0x890]
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x848]
call fcn.0041c210
add esp, 4
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xc68]
cmp dword [ebp - 0x834], 8
lea eax, [ebp - 0x848]
push ecx
cmovae eax, dword [ebp - 0x848]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov edi, dword [sym.imp.KERNEL32.dll_FindNextFileW]
mov esi, eax
lea eax, [ebp - 0xc68]
push eax
push esi
call edi
test eax, eax
je 0x4c4923
nop dword [eax + eax]
cmp esi, 0xffffffff
je 0x4c4923
lea eax, [ebp - 0xc3c]
push eax
lea ecx, [ebp - 0x878]
call fcn.0040f910
mov byte [ebp - 4], 6
lea edx, [eax + 0x10]
or ebx, 1
cmp dword [eax + 0x14], 8
mov dword [ebp - 0xea4], ebx
jb 0x4c47d3
mov eax, dword [eax]
mov edx, dword [edx]
mov ecx, eax
push 1
push 0x71082c
call fcn.00410500
add esp, 8
test eax, eax
je 0x4c4828
lea eax, [ebp - 0xc3c]
push eax
lea ecx, [ebp - 0x8a8]
call fcn.0040f910
or ebx, 2
cmp dword [eax + 0x14], 8
lea edx, [eax + 0x10]
jb 0x4c480a
mov eax, dword [eax]
mov edx, dword [edx]
mov ecx, eax
push 2
push 0x7172ec
call fcn.00410500
add esp, 8
mov byte [ebp - 0xe99], 0
test eax, eax
jne 0x4c482f
mov byte [ebp - 0xe99], 1
test bl, 2
je 0x4c4842
lea ecx, [ebp - 0x8a8]
and ebx, 0xfffffffd
call fcn.0040f850
lea ecx, [ebp - 0x878]
mov dword [ebp - 4], 5
and ebx, 0xfffffffe
call fcn.0040f850
cmp byte [ebp - 0xe99], 0
jne 0x4c4911
test byte [ebp - 0xc68], 0x10
je 0x4c48ff
lea eax, [ebp - 0xc3c]
push eax
lea ecx, [ebp - 0x8a8]
call fcn.0040f910
lea eax, [ebp - 0x8a8]
mov byte [ebp - 4], 7
push eax
lea edx, [ebp - 0x890]
lea ecx, [ebp - 0x878]
call fcn.00428400
add esp, 4
lea ecx, [ebp - 0x830]
push eax
call fcn.0040f890
lea ecx, [ebp - 0x878]
call fcn.0040f850
push 7
push 0
push str.default
lea ecx, [ebp - 0x8a8]
mov byte [ebp - 0xe9a], 1
call fcn.00410650
mov ecx, dword [ebp - 0xea0]
cmp eax, 0xffffffff
movzx ecx, cl
mov eax, 1
cmovne ecx, eax
mov byte [ebp - 4], 5
mov dword [ebp - 0xea0], ecx
lea ecx, [ebp - 0x8a8]
call fcn.0040f850
jmp 0x4c4908
cmp byte [ebp - 0xe9a], 1
jne 0x4c4911
cmp byte [ebp - 0xea0], 1
je 0x4c4923
lea eax, [ebp - 0xc68]
push eax
push esi
call edi
test eax, eax
jne 0x4c47a0
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp byte [ebp - 0xe9a], 0
jne 0x4c49d4
mov eax, dword [ebp - 0x834]
cmp eax, 8
jb 0x4c4955
inc eax
lea ecx, [ebp - 0x848]
push eax
push dword [ebp - 0x848]
call fcn.004120a0
xor eax, eax
mov dword [ebp - 0x834], 7
mov word [ebp - 0x848], ax
mov eax, dword [ebp - 0x81c]
mov dword [ebp - 0x838], 0
cmp eax, 8
jb 0x4c4990
inc eax
lea ecx, [ebp - 0x830]
push eax
push dword [ebp - 0x830]
call fcn.004120a0
xor eax, eax
mov dword [ebp - 0x81c], 7
mov word [ebp - 0x830], ax
mov eax, dword [ebp - 0x87c]
mov dword [ebp - 0x820], 0
cmp eax, 8
jb 0x4c516e
inc eax
lea ecx, [ebp - 0x890]
push eax
push dword [ebp - 0x890]
call fcn.004120a0
jmp 0x4c516e
sub esp, 8
mov edx, 0x189c
mov ecx, 0x70df70
call fcn.0043d310
mov esi, eax
add esp, 8
mov dword [ebp - 0xea4], esi
test esi, esi
jne 0x4c4a96
mov eax, dword [ebp - 0x834]
cmp eax, 8
jb 0x4c4a17
inc eax
lea ecx, [ebp - 0x848]
push eax
push dword [ebp - 0x848]
call fcn.004120a0
xor eax, eax
mov dword [ebp - 0x834], 7
mov word [ebp - 0x848], ax
mov eax, dword [ebp - 0x81c]
mov dword [ebp - 0x838], 0
cmp eax, 8
jb 0x4c4a52
inc eax
lea ecx, [ebp - 0x830]
push eax
push dword [ebp - 0x830]
call fcn.004120a0
xor eax, eax
mov dword [ebp - 0x81c], 7
mov word [ebp - 0x830], ax
mov eax, dword [ebp - 0x87c]
mov dword [ebp - 0x820], 0
cmp eax, 8
jb 0x4c516e
inc eax
lea ecx, [ebp - 0x890]
push eax
push dword [ebp - 0x890]
call fcn.004120a0
jmp 0x4c516e
push 0x230
lea eax, [ebp - 0xe98]
mov byte [ebp - 4], 8
push 0
push eax
mov dword [ebp - 0xebc], esi
mov dword [ebp - 0xea0], 0xffffffff
call fcn.004e7b30
add esp, 0xc
cmp dword [esi], 1
je 0x4c4ad1
mov dword [0x728564], 0x80000
jmp 0x4c4afb
lea eax, [ebp - 0xe98]
push eax
lea eax, [ebp - 0xea0]
push eax
push ecx
mov ecx, dword [esi + 4]
push str.install.rdf
call fcn.0043d100
cmp dword [ebp - 0xea0], 0xffffffff
mov dword [0x728564], eax
jne 0x4c4b19
mov byte [ebp - 4], 0xa
cmp dword [esi], 2
mov ecx, esi
sete al
test al, al
je 0x4c5148
call fcn.00441250
jmp 0x4c514d
mov dword [ebp - 0x86c], 0
mov dword [ebp - 0x868], 0
mov dword [ebp - 0x864], 0
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x86c]
push dword [ebp - 0xc6c]
call fcn.0041bd90
mov dword [ebp - 4], 0xb
mov edi, dword [ebp - 0x868]
mov ebx, dword [ebp - 0x86c]
sub edi, ebx
cmp dword [esi], 1
je 0x4c4b72
mov dword [0x728564], 0x80000
jmp 0x4c4b8c
push ecx
mov ecx, dword [esi + 4]
push edi
push ebx
push dword [ebp - 0xea0]
call fcn.0043d1e0
mov dword [0x728564], eax
test eax, eax
je 0x4c4ba0
lea ecx, [ebp - 0x86c]
call fcn.0040fff0
mov byte [ebp - 4], 0xf
jmp 0x4c4aff
lea ecx, [ebp - 0xa18]
mov dword [ebp - 0xa18], 0
mov dword [ebp - 0xa14], 0
call fcn.004337b0
lea ecx, [ebp - 0xa18]
mov byte [ebp - 4], 0x10
call fcn.00433860
lea ecx, [ebp - 0xa18]
call fcn.004337b0
mov edx, dword [ebp - 0xa18]
lea eax, [ebp - 0xa14]
push eax
sub esp, 0x10
lea ecx, [ebp - 0x89c]
push edi
push ebx
push edx
call fcn.00433660
add esp, 0x20
lea ecx, [ebp - 0xa18]
cmp dword [ebp - 0x89c], 0
je 0x4c4c22
call fcn.00433860
lea ecx, [ebp - 0x86c]
call fcn.0040fff0
mov byte [ebp - 4], 0x11
jmp 0x4c4aff
push str.em:id
lea eax, [ebp - 0xea0]
push eax
push str.Description
lea eax, [ebp - 0xeb4]
push eax
push 0x71731c
lea eax, [ebp - 0xeb8]
push eax
call fcn.00433720
mov ecx, eax
call fcn.00433720
mov ecx, eax
call fcn.00433720
mov ecx, dword [ebp - 0xea0]
test ecx, ecx
je 0x4c50f4
mov eax, dword [ecx]
and eax, 7
add eax, 1
je 0x4c50f4
cmp eax, 3
je 0x4c4c9f
cmp eax, 4
je 0x4c4c9f
mov ecx, dword [ecx + 0x10]
test ecx, ecx
je 0x4c4caa
mov eax, dword [ecx]
and eax, 7
inc eax
cmp eax, 3
je 0x4c4c9f
cmp eax, 4
je 0x4c4c9f
mov ecx, dword [ecx + 0x18]
test ecx, ecx
jne 0x4c4c86
jmp 0x4c4caa
test ecx, ecx
je 0x4c4caa
mov eax, dword [ecx + 0xc]
test eax, eax
jne 0x4c4caf
mov eax, 0x70f8c0
push eax
lea ecx, [ebp - 0x8d8]
call fcn.0040f910
xor eax, eax
mov dword [ebp - 0x84c], 7
mov dword [ebp - 0x850], 0
mov word [ebp - 0x860], ax
push str.extensions_
lea edx, [ebp - 0x830]
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x950]
call fcn.0041c210
lea ecx, [ebp - 0x8d8]
mov byte [ebp - 4], 0x15
push ecx
mov edx, eax
lea ecx, [ebp - 0x938]
call fcn.0041c150
push str..xpi
mov edx, eax
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x920]
call fcn.0041c1a0
add esp, 0xc
lea ecx, [ebp - 0x860]
push eax
call fcn.0040f890
lea ecx, [ebp - 0x920]
call fcn.0040f850
lea ecx, [ebp - 0x938]
call fcn.0040f850
lea ecx, [ebp - 0x950]
mov byte [ebp - 4], 0x14
call fcn.0040f850
push str.extensions
lea edx, [ebp - 0x830]
lea ecx, [ebp - 0x8c0]
call fcn.0041c210
add esp, 4
mov byte [ebp - 4], 0x17
lea eax, [ebp - 0x8c0]
cmp dword [ebp - 0x8ac], 8
push 0
cmovae eax, dword [ebp - 0x8c0]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
sub esp, 0xc
lea eax, [ebp - 0x860]
lea ecx, [ebp - 0xf6c]
push eax
call fcn.00424fc0
cmp dword [ebp - 0xf1c], 0
lea ecx, [ebp - 0xf6c]
jne 0x4c4df7
call fcn.00422390
lea ecx, [ebp - 0x8c0]
call fcn.0040f850
lea ecx, [ebp - 0x860]
call fcn.0040f850
lea ecx, [ebp - 0x8d8]
call fcn.0040f850
lea ecx, [ebp - 0xa18]
call fcn.00433860
lea ecx, [ebp - 0x86c]
call fcn.0040fff0
mov byte [ebp - 4], 0x19
jmp 0x4c4aff
push 0
push 0x189c
push 0x70df70
mov byte [ebp - 4], 0x1a
call fcn.00425900
lea ecx, [ebp - 0xf6c]
mov dword [ebp - 4], 0x18
call fcn.00424f80
push str.extensions.ini
lea edx, [ebp - 0x830]
lea ecx, [ebp - 0x8f0]
call fcn.0041c210
sub esp, 0x14
mov byte [ebp - 4], 0x1d
lea eax, [ebp - 0x860]
mov dword [ebp - 0xeb8], esp
mov ecx, esp
push eax
call fcn.0040f990
sub esp, 0x18
mov byte [ebp - 4], 0x1e
lea eax, [ebp - 0x8d8]
mov dword [ebp - 0xeb4], esp
mov ecx, esp
push eax
call fcn.0040f990
sub esp, 0x18
mov byte [ebp - 4], 0x1f
lea eax, [ebp - 0x8f0]
mov ecx, esp
push eax
call fcn.0040f990
mov byte [ebp - 4], 0x1d
call fcn.004c52f0
test al, al
jne 0x4c4efd
cmp dword [ebp - 0x84c], 8
lea eax, [ebp - 0x860]
cmovae eax, dword [ebp - 0x860]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 0x8f0]
call fcn.0040f850
lea ecx, [ebp - 0xf6c]
call fcn.00422390
lea ecx, [ebp - 0x8c0]
call fcn.0040f850
lea ecx, [ebp - 0x860]
call fcn.0040f850
lea ecx, [ebp - 0x8d8]
call fcn.0040f850
lea ecx, [ebp - 0xa18]
call fcn.00433860
lea ecx, [ebp - 0x86c]
call fcn.0040fff0
mov byte [ebp - 4], 0x20
jmp 0x4c4aff
push str.extensions.json
lea edx, [ebp - 0x830]
lea ecx, [ebp - 0x908]
call fcn.0041c210
mov ecx, dword [ebp - 0xeac]
lea eax, [ebp - 0x860]
mov byte [ebp - 4], 0x21
push dword [ebp - 0xea8]
push eax
lea eax, [ebp - 0xa18]
push eax
lea eax, [ebp - 0x908]
push eax
call fcn.004c58e0
test al, al
jne 0x4c4fc1
cmp dword [ebp - 0x84c], 8
lea eax, [ebp - 0x860]
cmovae eax, dword [ebp - 0x860]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 0x908]
call fcn.0040f850
lea ecx, [ebp - 0x8f0]
call fcn.0040f850
lea ecx, [ebp - 0xf6c]
call fcn.00422390
lea ecx, [ebp - 0x8c0]
call fcn.0040f850
lea ecx, [ebp - 0x860]
call fcn.0040f850
lea ecx, [ebp - 0x8d8]
call fcn.0040f850
lea ecx, [ebp - 0xa18]
call fcn.00433860
lea ecx, [ebp - 0x86c]
call fcn.0040fff0
mov byte [ebp - 4], 0x22
jmp 0x4c4aff
mov eax, dword [ebp - 0xeb0]
lea ecx, [ebp - 0x860]
cmp eax, ecx
je 0x4c4fdd
push 0xffffffffffffffff
push 0
push ecx
mov ecx, eax
call fcn.0040f6c0
lea ecx, [ebp - 0x908]
call fcn.0040f850
lea ecx, [ebp - 0x8f0]
call fcn.0040f850
lea ecx, [ebp - 0xf6c]
call fcn.00422390
lea ecx, [ebp - 0x8c0]
call fcn.0040f850
lea ecx, [ebp - 0x860]
call fcn.0040f850
lea ecx, [ebp - 0x8d8]
call fcn.0040f850
lea ecx, [ebp - 0xa18]
call fcn.00433860
lea ecx, [ebp - 0x86c]
call fcn.0040fff0
mov byte [ebp - 4], 0x23
mov ecx, esi
cmp dword [esi], 2
sete al
test al, al
je 0x4c504c
call fcn.00441250
jmp 0x4c5051
call fcn.0043d410
lea ecx, [ebp - 0x848]
call fcn.0040f850
lea ecx, [ebp - 0x830]
call fcn.0040f850
lea ecx, [ebp - 0x890]
call fcn.0040f850
mov al, 1
jmp 0x4c5170
lea ecx, [ebp - 0xa18]
call fcn.00433860
lea ecx, [ebp - 0x86c]
call fcn.0040fff0
mov byte [ebp - 4], 0x12
mov ecx, esi
cmp dword [esi], 2
jmp 0x4c513a
sete al
test al, al
je 0x4c5148
call fcn.00441250
jmp 0x4c514d
call fcn.0043d410
lea ecx, [ebp - 0x848]
call fcn.0040f850
lea ecx, [ebp - 0x830]
call fcn.0040f850
lea ecx, [ebp - 0x890]
call fcn.0040f850
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004ce564
mov esp, ebp
pop ebp
ret 4