Function at 0x10024875
Capabilities:
Create directory
Print debug messages
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100eceed
mov eax, dword fs:[0]
push eax
mov eax, 0x1d98
call fcn.100c7ed0
mov eax, dword [0x1012c510]
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 eax, dword [ebp + 8]
mov esi, ecx
xor ebx, ebx
mov dword [ebp - 0x1d58], eax
mov eax, dword [esi + 0x40]
inc ebx
mov dword [ebp - 0x1d50], esi
mov dword [ebp - 0x1d78], ebx
cmp eax, 2
jne 0x1002529f
mov edi, dword [esi + 0x3c]
mov dword [ebp - 0x1d5c], ebx
cmp edi, 0xd
ja case.0x100248df.1
jmp dword [edi*4 + 0x100252c5]
push 1
mov ecx, str.setup.exe
mov ebx, esi
call fcn.10021257
jmp 0x10024e69
call fcn.100247c8
xor edi, edi
cmp eax, edi
jne 0x10024aab
mov dword [ebp - 0x1d3c], edi
mov dword [ebp - 0x1d38], edi
mov dword [ebp - 0x1d34], edi
mov dword [ebp - 0x1d30], edi
mov dword [ebp - 4], edi
cmp dword [esi + 0x78], 8
lea eax, [ebp - 0x1d3c]
push eax
jb 0x10024935
mov ecx, dword [esi + 0x64]
jmp 0x10024938
lea ecx, [esi + 0x64]
sub esp, 0x1c
mov eax, esp
mov dword [ebp - 0x1d60], esp
push ecx
call fcn.10008945
mov ecx, 0x10107cec
call fcn.1002cf09
add esp, 0x20
cmp dword [ebp - 0x1d38], ebx
jb 0x100249bf
cmp dword [ebp - 0x1d38], edi
ja 0x10024970
push 0x80070057
call fcn.100078e4
mov eax, dword [ebp - 0x1d3c]
cmp dword [eax + 0x18], 8
jb 0x10024981
mov eax, dword [eax + 4]
jmp 0x10024984
add eax, 4
mov edi, str.revision
push eax
mov ecx, edi
call fcn.1004e861
cmp dword [ebp - 0x1d38], 0
pop ecx
jbe 0x10024966
mov eax, dword [ebp - 0x1d3c]
cmp dword [eax + 0x18], 8
jb 0x100249ac
mov eax, dword [eax + 4]
jmp 0x100249af
add eax, 4
push ebx
push eax
push edi
push str.Prefs
call fcn.10039999
add esp, 0x10
push 0
mov ecx, str.config.xml
mov ebx, esi
call fcn.10021257
mov ebx, 0x101364f0
mov edi, ebx
call fcn.1004a02a
mov esi, 0x101365a0
call fcn.10039772
push 0xffffffffffffffff
xor edi, edi
mov esi, 0x1013663c
call fcn.10001880
mov esi, dword [ebp - 0x1d58]
and dword [ebp - 0x1d64], edi
and dword [ebp - 0x1d60], edi
lea eax, [ebp - 0x1d68]
push eax
push dword [esi + 4]
mov ecx, ebx
mov dword [ebp - 0x1d68], 8
call fcn.1004ae81
cmp dword [ebp - 0x1d38], 2
jb 0x10024a7c
cmp dword [ebp - 0x1d38], 1
jbe 0x10024966
mov eax, dword [ebp - 0x1d3c]
push 0xffffffffffffffff
add eax, 0x1c
push 0x101365ec
xor ebx, ebx
call fcn.1000165f
push dword [esi + 4]
and dword [ebp - 0x1d70], ebx
and dword [ebp - 0x1d6c], ebx
sub esp, 0xc
mov edi, esp
mov dword [ebp - 0x1d74], 0x4c
lea esi, [ebp - 0x1d74]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0x101365a0
movsd dword es:[edi], dword [esi]
call fcn.10039c19
or dword [ebp - 4], 0xffffffff
lea edi, [ebp - 0x1d3c]
call fcn.10015ef6
mov esi, dword [ebp - 0x1d50]
mov eax, dword [ebp - 0x1d58]
push dword [eax + 4]
mov ecx, esi
push 0x101364f0
call fcn.10049057
jmp 0x100252b3
cmp eax, ebx
jne 0x10024e69
xor eax, eax
mov dword [ebp - 0x1d3c], eax
mov dword [ebp - 0x1d38], eax
mov dword [ebp - 0x1d34], eax
mov dword [ebp - 0x1d30], eax
mov dword [ebp - 4], ebx
cmp dword [esi + 0x78], 8
lea eax, [ebp - 0x1d3c]
mov edi, 0x10107cec
push eax
jb 0x10024ae7
mov ecx, dword [esi + 0x64]
jmp 0x10024aea
lea ecx, [esi + 0x64]
sub esp, 0x1c
mov eax, esp
mov dword [ebp - 0x1d60], esp
push ecx
call fcn.10008945
mov ecx, edi
call fcn.1002cf09
add esp, 0x20
mov edi, str.Update
cmp dword [ebp - 0x1d38], ebx
jb 0x10024b43
cmp dword [ebp - 0x1d38], 0
jbe 0x10024966
mov eax, dword [ebp - 0x1d3c]
cmp dword [eax + 0x18], 8
jb 0x10024b30
mov eax, dword [eax + 4]
jmp 0x10024b33
add eax, 4
push ebx
push eax
push str.revision
push edi
call fcn.10039999
add esp, 0x10
cmp dword [ebp - 0x1d38], 2
jb 0x10024b7c
cmp dword [ebp - 0x1d38], ebx
jbe 0x10024966
mov eax, dword [ebp - 0x1d3c]
cmp dword [eax + 0x34], 8
jb 0x10024b69
mov eax, dword [eax + 0x20]
jmp 0x10024b6c
add eax, 0x20
push ebx
push eax
push 0x10109160
push edi
call fcn.10039999
add esp, 0x10
push 0
mov ecx, str.almost.xml
mov ebx, esi
call fcn.10021257
lea edi, [ebp - 0x1d3c]
call fcn.10015ef6
jmp 0x10024e69
mov eax, dword [ebp - 0x1d58]
push dword [eax + 4]
push 0x101364f0
call fcn.100492af
mov dword [ebp - 0x1d5c], eax
jmp 0x1002528d
cmp dword [esi + 0x18], 0x10
jb 0x10024bc3
mov eax, dword [esi + 4]
jmp 0x10024bc6
lea eax, [esi + 4]
mov edi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
xor ecx, ecx
push ecx
push ecx
push 0xffffffffffffffff
push eax
push ecx
mov ebx, 0xfde9
push ebx
call edi
mov dword [ebp - 0x1d60], eax
xor ecx, ecx
push 2
inc eax
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.100a2139
cmp dword [esi + 0x18], 0x10
pop ecx
mov dword [ebp - 0x1d5c], eax
jb 0x10024c09
mov eax, dword [esi + 4]
jmp 0x10024c0c
lea eax, [esi + 4]
push dword [ebp - 0x1d60]
push dword [ebp - 0x1d5c]
push 0xffffffffffffffff
push eax
push 0
push ebx
call edi
push dword [ebp - 0x1d5c]
add esi, 0x60
call fcn.100013eb
push dword [ebp - 0x1d5c]
call fcn.100a212e
pop ecx
jmp 0x10024a8b
xor eax, eax
cmp dword [0x10136618], eax
jne 0x10024c8b
mov dword [ebp - 0x1d80], eax
mov dword [ebp - 0x1d7c], eax
mov dword [0x10136624], eax
mov eax, dword [ebp - 0x1d58]
push dword [eax + 4]
mov dword [ebp - 0x1d84], 0x84
sub esp, 0xc
mov edi, esp
lea esi, [ebp - 0x1d84]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0x101365a0
movsd dword es:[edi], dword [esi]
call fcn.10039bc6
mov esi, dword [ebp - 0x1d50]
push dword [ebp - 0x1d58]
mov ecx, esi
call fcn.10021e6e
jmp 0x10024bad
xor eax, eax
push 0x144e
push eax
mov word [ebp - 0x152c], ax
lea eax, [ebp - 0x152a]
push eax
call fcn.100c1480
add esp, 0xc
push ebx
lea eax, [ebp - 0x152c]
push 0x924
push eax
call fcn.1005e866
add esp, 0xc
test eax, eax
je 0x10024e69
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatW]
push str.themes_
lea eax, [ebp - 0x152c]
push eax
call edi
push 0
lea eax, [ebp - 0x152c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
cmp dword [esi + 0x3c], 0xc
jne 0x10024dbd
push 0
lea ecx, [ebp - 0x1d48]
mov dword [ebp - 0x1d30], 0xf
call fcn.1000d2f6
lea eax, [ebp - 0x1d48]
push eax
mov ecx, str.themeid
mov ebx, 0x101367a0
mov dword [ebp - 4], 2
call fcn.1004e2df
pop ecx
test eax, eax
je 0x10024dd2
cmp dword [ebp - 0x1d30], 0x10
mov eax, dword [ebp - 0x1d44]
jae 0x10024d57
lea eax, [ebp - 0x1d44]
mov dword [ebp - 0x1d5c], eax
xor eax, eax
cmp dword [ebp - 0x1d5c], eax
je 0x10024d9b
push dword [ebp - 0x1d5c]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebx, eax
inc ebx
cmp ebx, 0x3fffffff
jle 0x10024d82
xor eax, eax
jmp 0x10024d9b
lea eax, [ebx + ebx]
call fcn.100c7f80
mov eax, esp
push 3
push ebx
push dword [ebp - 0x1d5c]
push eax
call fcn.1002cd8d
push eax
add esi, 0x60
call fcn.100013eb
or dword [ebp - 4], 0xffffffff
push 0
push 1
lea ecx, [ebp - 0x1d48]
call fcn.1000d1ca
mov esi, dword [ebp - 0x1d50]
cmp dword [esi + 0x74], 0
je 0x10024e69
cmp dword [esi + 0x78], 8
jb 0x10024de6
mov eax, dword [esi + 0x64]
jmp 0x10024de9
push 0
push 1
lea ecx, [ebp - 0x1d48]
call fcn.1000d1ca
jmp 0x10024e69
lea eax, [esi + 0x64]
push eax
lea eax, [ebp - 0x152c]
push eax
call edi
push 0x10107ca8
lea eax, [ebp - 0x152c]
push eax
call edi
push 0
lea eax, [ebp - 0x152c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
add esi, 0x44
mov eax, esi
call fcn.1000c32f
push eax
call fcn.1000c309
push eax
lea ecx, [ebp - 0x152c]
call fcn.10018ba4
pop ecx
pop ecx
test eax, eax
je 0x10024e63
mov eax, dword [ebp - 0x1d50]
cmp dword [eax + 0x78], 8
jb 0x10024e43
mov ecx, dword [eax + 0x64]
jmp 0x10024e46
lea ecx, [eax + 0x64]
mov esi, dword [ebp - 0x1d58]
xor edx, edx
cmp dword [eax + 0x3c], 0xc
sete dl
push edx
push 1
push esi
call fcn.100274cf
call fcn.100252fd
mov esi, dword [ebp - 0x1d50]
mov eax, dword [ebp - 0x1d58]
push 0
push 0
push dword [eax + 4]
call dword [sym.imp.USER32.dll_InvalidateRect]
mov edi, esi
call fcn.1002154d
push esi
call fcn.100a212e
pop ecx
xor eax, eax
lea esp, [ebp - 0x1db4]
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.100bfae1
leave
ret 4
dec dword [0x10136568]
push dword [0x10136568]
mov edi, dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [ebp - 0xdc]
push str.addon_d
push eax
call edi
add esp, 0xc
cmp dword [esi + 0x78], 8
jb 0x10024edc
mov ecx, dword [esi + 0x64]
jmp 0x10024edf
lea ecx, [esi + 0x64]
push 0
mov ebx, esi
call fcn.10021257
cmp dword [esi + 0x78], 8
jb 0x10024ef3
mov eax, dword [esi + 0x64]
jmp 0x10024ef6
lea eax, [esi + 0x64]
xor ebx, ebx
inc ebx
push ebx
push eax
lea eax, [ebp - 0xdc]
push eax
push str.Update
call fcn.10039999
add esp, 0x10
cmp dword [0x10136568], 0
jne case.0x100248df.1
push dword [0x1013656c]
lea eax, [ebp - 0x1d2c]
push str.Cab_s__downloaded__UserInstallDelayed:__d
push eax
call edi
add esp, 0xc
lea eax, [ebp - 0x1d2c]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
xor eax, eax
cmp dword [0x1013656c], eax
je 0x10024f8c
mov dword [ebp - 0x1d64], eax
mov dword [ebp - 0x1d60], eax
mov eax, dword [ebp - 0x1d58]
mov dword [0x10136628], ebx
push dword [eax + 4]
mov dword [ebp - 0x1d68], 0x88
sub esp, 0xc
mov edi, esp
lea esi, [ebp - 0x1d68]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0x101365a0
movsd dword es:[edi], dword [esi]
call fcn.10039bc6
jmp 0x10024a8b
mov eax, dword [ebp - 0x1d58]
push dword [eax + 4]
call fcn.10024817
jmp case.0x100248df.1
mov eax, dword [esi + 0x58]
and dword [ebp - 0x1d78], 0
and dword [ebp - 0x1d6c], 0
mov dword [ebp - 0x1d60], eax
cmp eax, 0x65
jne 0x1002500b
cmp edi, 2
jne 0x1002500b
cmp dword [esi + 0x18], 0x10
lea edi, [esi + 4]
jb 0x10024fcd
mov ebx, dword [edi]
jmp 0x10024fcf
mov ebx, edi
add esi, 0x44
mov eax, esi
call fcn.1000c32f
push eax
call fcn.1000c309
push eax
push 0
push ebx
call fcn.1002edc9
mov ecx, dword [ebp - 0x1d50]
cmp dword [ecx + 0x18], 0x10
jb 0x10024ff6
mov edi, dword [edi]
push eax
push edi
mov edi, dword [ebp - 0x1d58]
add edi, 0x30
call fcn.10037733
jmp 0x10024a8b
lea ecx, [ebp - 0x1d6c]
push ecx
mov ecx, dword [ebp - 0x1d58]
add ecx, 0x1bc
mov esi, eax
call fcn.1000bd4f
test al, al
je 0x10024a8b
mov ebx, dword [ebp - 0x1d6c]
cmp edi, 3
jne 0x10025073
cmp dword [ebx + 0x2c], 1
jne 0x10025073
cmp dword [ebx + 0x34], 0
je 0x1002504d
push dword [ebx + 0x34]
call fcn.10097423
pop ecx
mov esi, dword [ebp - 0x1d50]
add esi, 0x44
mov eax, esi
call fcn.1000c32f
push eax
call fcn.1000c309
push eax
call fcn.100971a9
pop ecx
pop ecx
mov dword [ebx + 0x34], eax
jmp 0x10024a8b
cmp edi, 2
jne 0x100250f2
mov eax, dword [ebp - 0x1d50]
cmp dword [eax + 0x18], 0x10
jb 0x10025089
mov edi, dword [eax + 4]
jmp 0x1002508c
lea edi, [eax + 4]
lea esi, [eax + 0x44]
mov eax, esi
call fcn.1000c32f
push eax
call fcn.1000c309
push eax
push dword [ebx + 0x34]
push edi
call fcn.1002edc9
cmp dword [ebx + 0x34], eax
je 0x10024a8b
mov dword [ebx + 0x34], eax
mov dword [ebp - 0x1d40], eax
lea eax, [ebp - 0x1d4c]
push eax
push dword [ebp - 0x1d60]
mov eax, dword [ebp - 0x1d58]
push 0x440
push dword [eax + 4]
mov dword [ebp - 0x1d4c], 0x20
mov dword [ebp - 0x1d48], 1
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x10024a8b
cmp edi, 9
jne 0x10024a8b
mov esi, dword [ebp - 0x1d50]
add esi, 0x44
call fcn.1000c309
mov edi, eax
test edi, edi
je 0x10025121
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
inc esi
cmp esi, 0x3fffffff
jle 0x10025125
xor eax, eax
jmp 0x10025139
lea eax, [esi + esi]
call fcn.100c7f80
mov eax, esp
push 3
push esi
push edi
push eax
call fcn.1002cd8d
mov ebx, dword [ebp - 0x1d60]
push 0
push eax
mov eax, dword [ebp - 0x1d58]
mov edi, dword [eax + 0x1b8]
call fcn.10013ad4
mov eax, dword [ebp - 0x1d50]
xor esi, esi
inc esi
cmp dword [eax + 0x18], 0x10
mov dword [ebp - 0x1d78], esi
jb 0x1002516d
mov eax, dword [eax + 4]
jmp 0x10025170
add eax, 4
push eax
lea eax, [ebp - 0x1d80]
push eax
call fcn.1000e9cd
mov dword [ebp - 4], 3
push dword [eax]
lea eax, [ebp - 0x1da0]
call fcn.10008945
mov ebx, dword [ebp - 0x1d58]
lea eax, [ebp - 0x1da0]
push eax
lea eax, [ebp - 0x1d64]
push eax
add ebx, 0x41c
push ebx
mov byte [ebp - 4], 4
call fcn.10014cef
push 0
push esi
lea esi, [ebp - 0x1da0]
call fcn.100016e6
or dword [ebp - 4], 0xffffffff
push dword [ebp - 0x1d80]
call fcn.100a212e
pop ecx
push dword [ebp - 0x1d7c]
call fcn.100a212e
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0x1d6c], eax
mov eax, dword [ebx]
pop ecx
lea edi, [ebp - 0x1d70]
lea esi, [ebp - 0x1d64]
mov dword [ebp - 0x1d70], eax
call fcn.10056222
test al, al
jne 0x1002520e
call fcn.100156f8
mov byte [eax + 0x1c], 1
mov eax, dword [ebx + 0x18]
mov eax, dword [eax]
mov ecx, dword [ebx]
mov byte [ebp - 0x1d51], 1
mov dword [ebp - 0x1d64], ecx
mov dword [ebp - 0x1d60], eax
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0x1d6c], eax
mov eax, dword [ebx]
lea edi, [ebp - 0x1d70]
lea esi, [ebp - 0x1d64]
mov dword [ebp - 0x1d70], eax
call fcn.10056222
test al, al
jne 0x10025263
call fcn.100156f8
mov al, byte [eax + 0x1c]
or byte [ebp - 0x1d51], al
call fcn.10052de8
jmp 0x10025228
cmp byte [ebp - 0x1d51], 0
je 0x10024a8b
mov ebx, dword [ebp - 0x1d58]
push str.onscriptloaded
push 0x20000
xor eax, eax
call fcn.1001a3d4
mov esi, dword [ebp - 0x1d50]
cmp dword [ebp - 0x1d5c], 0
je 0x10024e69
jmp case.0x100248df.1
cmp eax, 3
jne 0x10024e69
push esi
mov ecx, 0x101364f0
call fcn.1004a404
cmp dword [ebp - 0x1d78], 0
jge 0x10024e69
jmp 0x10024e7c