Function at 0x43e3e0
Capabilities:
Delete file
Get common file path
Move file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x57a418
mov eax, dword fs:[0]
push eax
sub esp, 0x498
mov eax, dword [0x5d7ce0]
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 + 0x18]
mov ebx, edx
mov dword [ebp - 0x234], eax
mov dword [ebp - 0x230], ecx
mov dword [ebp - 0x240], ebx
mov dword [ebp - 4], 2
call fcn.0044d418
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x43e446
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x244], eax
mov byte [ebp - 4], 3
call fcn.0044d418
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x43e476
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x238], eax
xor ecx, ecx
push 0x206
push ecx
lea edx, [ebp - 0x21a]
mov byte [ebp - 4], 4
push edx
mov word [ebp - 0x21c], cx
call fcn.00550f40
add esp, 0xc
lea eax, [ebp - 0x21c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push str.DESDispatcher.ddproj
lea ecx, [ebp - 0x21c]
push ecx
lea edx, [ebp - 0x244]
push 0x5ab228
push edx
call fcn.00409220
mov eax, dword [ebx]
mov esi, dword [ebp + 0x14]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
sub eax, 0x200
add esp, 0x10
or eax, ecx
jge 0x43e501
push 0x200
mov ecx, ebx
call fcn.004077a0
mov eax, dword [ebx]
push str.DESDispatcher.ddproj
push esi
lea ecx, [ebp - 0x220]
push ecx
mov ecx, dword [ebp + 8]
push eax
lea edx, [ebp - 0x21c]
push edx
call fcn.0044b7c0
mov esi, eax
mov eax, dword [ebx]
mov ecx, dword [eax - 8]
add esp, 0x14
mov dword [ebp - 0x224], esi
test eax, eax
je 0x43e546
push ecx
push eax
call fcn.0054e54a
add esp, 8
test eax, eax
js 0x43f2a2
mov ecx, dword [ebx]
cmp eax, dword [ecx - 8]
jg 0x43f2a2
mov dword [ecx - 0xc], eax
mov ecx, dword [ebx]
xor edx, edx
mov word [ecx + eax*2], dx
test esi, esi
jne 0x43e571
push 0x5b0814
mov ecx, ebx
call fcn.00407960
jmp 0x43f330
mov esi, dword [ebp - 0x244]
push ecx
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x220], esp
mov dword [ebp - 0x22c], esp
call edx
cmp dword [esi - 4], 0
lea ecx, [esi - 4]
jl 0x43e5aa
cmp eax, dword [esi - 0x10]
jne 0x43e5aa
lea edi, [esi - 0x10]
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x43e5e3
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
jne 0x43e5c3
call fcn.0043d450
mov eax, dword [esi - 0xc]
mov dword [edi + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.0054de82
add esp, 0x10
mov ecx, dword [ebp - 0x22c]
lea edx, [ebp - 0x374]
add edi, 0x10
push edx
mov dword [ecx], edi
call fcn.00438450
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x374]
mov esi, 1
mov dword [ebp - 0x228], 0
cmp dword [eax - 4], esi
jle 0x43e62d
mov eax, dword [eax - 0xc]
push eax
lea ecx, [ebp - 0x374]
call fcn.004076d0
mov eax, dword [ebp - 0x374]
mov edx, dword [ebp - 0x36c]
lea ecx, [ebp - 0x228]
push ecx
push eax
mov ecx, str.des_sqlite
call fcn.00447c70
test eax, eax
je 0x43e660
mov edx, dword [ebp - 0x228]
push edx
push 0x5af638
push ebx
call fcn.00409220
add esp, 0xc
jmp 0x43e670
push ebx
lea edi, [ebp - 0x374]
call fcn.00439600
test eax, eax
jne 0x43e672
xor esi, esi
mov dword [ebp - 0x224], esi
test esi, esi
jne 0x43e688
lea eax, [ebp - 0x374]
push eax
jmp 0x43f327
lea ecx, [ebp - 0x22c]
push ecx
lea edx, [ebp - 0x374]
push edx
call fcn.004391b0
mov byte [ebp - 4], 6
mov eax, dword [eax]
mov ebx, dword [ebp - 0x238]
lea esi, [eax - 0x10]
add ebx, 0xfffffff0
cmp esi, ebx
je 0x43e75a
cmp dword [ebx + 0xc], 0
jl 0x43e74a
mov ecx, dword [esi]
cmp ecx, dword [ebx]
jne 0x43e74a
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x43e6ea
cmp eax, dword [esi]
jne 0x43e6ea
mov edi, esi
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x43e726
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
jne 0x43e703
call fcn.0043d450
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.0054de82
add esp, 0x10
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43e73f
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
add edi, 0x10
mov dword [ebp - 0x238], edi
jmp 0x43e75a
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebp - 0x238]
call fcn.00407870
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x22c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43e780
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [ebp + 0x10], 0
je 0x43ea4c
lea ecx, [ebp - 0x238]
push ecx
lea edx, [ebp + 0xc]
push edx
lea eax, [ebp - 0x220]
push eax
mov dword [ebp - 0x228], 1
call fcn.004135f0
add esp, 0xc
push 0x5ad338
push eax
lea ecx, [ebp - 0x23c]
push ecx
mov byte [ebp - 4], 7
call fcn.0040d110
add esp, 0xc
mov edi, dword [ebp - 0x234]
mov byte [ebp - 4], 8
mov ecx, dword [eax]
mov esi, dword [edi]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x43e82c
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x43e820
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x43e820
push eax
call fcn.00407af0
mov dword [ebp - 0x22c], eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x43e813
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x22c]
add ecx, 0x10
mov dword [edi], ecx
jmp 0x43e82c
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, edi
call fcn.00407870
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x23c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43e852
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x220]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43e878
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [edi]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x220], esp
mov ebx, esp
call eax
cmp dword [esi - 4], 0
lea ecx, [esi - 4]
jl 0x43e8a9
cmp eax, dword [esi - 0x10]
jne 0x43e8a9
lea edi, [esi - 0x10]
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x43e8e2
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
jne 0x43e8c2
call fcn.0043d450
mov eax, dword [esi - 0xc]
mov dword [edi + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.0054de82
add esp, 0x10
add edi, 0x10
mov dword [ebx], edi
call fcn.0044ab60
add esp, 4
test eax, eax
je 0x43ea1d
jmp 0x43e900
mov esi, dword [ebp - 0x228]
mov ecx, dword [ebp - 0x238]
mov edx, dword [ebp + 0xc]
mov edi, dword [ebp - 0x234]
push esi
push ecx
push edx
push str._s_s___d__
push edi
call fcn.00409220
inc esi
mov dword [ebp - 0x228], esi
mov esi, dword [edi]
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
add esp, 0x14
call edx
cmp dword [esi - 4], 0
lea edx, [esi - 4]
jl 0x43e955
cmp eax, dword [esi - 0x10]
jne 0x43e955
lea edi, [esi - 0x10]
mov eax, 1
lock xadd dword [edx], eax
jmp 0x43e98d
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x43e5be
mov eax, dword [esi - 0xc]
mov dword [edi + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.0054de82
add esp, 0x10
add edi, 0x10
mov dword [ebp - 0x22c], edi
mov byte [ebp - 4], 9
xor ebx, ebx
cmp dword [edi - 4], 1
jle 0x43e9b7
mov ecx, dword [edi - 0xc]
push ecx
lea ecx, [ebp - 0x22c]
call fcn.004076d0
mov edi, dword [ebp - 0x22c]
push 0
push 0x2000000
push 3
push 0
push 3
push 0x80
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, 0xffffffff
je 0x43e9e6
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x43e9f0
cmp eax, 5
je 0x43e9f0
cmp eax, 0x20
jne 0x43e9f5
mov ebx, 1
lea eax, [edi - 0x10]
mov byte [ebp - 4], 5
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43ea15
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test ebx, ebx
jne 0x43e900
mov ecx, dword [ebp - 0x234]
push ecx
call fcn.00449bd0
add esp, 4
test eax, eax
jne 0x43eaaa
mov ecx, dword [ebp - 0x240]
push str._epenc
call fcn.00407960
lea edx, [ebp - 0x374]
push edx
jmp 0x43f327
mov edx, dword [ebp - 0x234]
mov ecx, dword [ebp + 0xc]
mov esi, dword [edx]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x43eaaa
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x43ea9e
mov ebx, dword [eax]
cmp ebx, dword [esi]
jne 0x43ea9e
push eax
call fcn.00407af0
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x43ea91
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x234]
add ebx, 0x10
mov dword [ecx], ebx
jmp 0x43eaaa
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, edx
call fcn.00407870
mov edi, dword [ebp - 0x240]
mov eax, dword [edi]
mov esi, dword [ebp + 0x14]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
sub eax, 0x200
or eax, ecx
jge 0x43ead5
push 0x200
mov ecx, edi
call fcn.004077a0
mov edx, dword [ebp - 0x234]
mov ecx, dword [edx]
mov eax, dword [edi]
push 0
push esi
lea edx, [ebp - 0x220]
push edx
push eax
push ecx
mov ecx, dword [ebp + 8]
call fcn.0044b7c0
mov esi, eax
mov eax, dword [edi]
mov ecx, dword [eax - 8]
add esp, 0x14
mov dword [ebp - 0x224], esi
test eax, eax
je 0x43eb19
push ecx
push eax
call fcn.0054e54a
add esp, 8
test eax, eax
js 0x43f2a2
mov ecx, dword [edi]
cmp eax, dword [ecx - 8]
jg 0x43f2a2
mov dword [ecx - 0xc], eax
mov ecx, dword [edi]
xor edx, edx
mov word [ecx + eax*2], dx
test esi, esi
jne 0x43eb4b
push 0x5b0878
mov ecx, edi
call fcn.00407960
lea eax, [ebp - 0x374]
push eax
jmp 0x43f327
call fcn.0044d418
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x43eb65
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebx, [eax + 0x10]
mov dword [ebp - 0x228], ebx
mov ecx, dword [ebp - 0x234]
push str.DESDispatcher.ddproj
push ecx
lea edx, [ebp - 0x220]
push edx
mov byte [ebp - 4], 0xa
call fcn.0040d110
add esp, 0xc
mov byte [ebp - 4], 0xb
mov eax, dword [eax]
lea esi, [eax - 0x10]
add ebx, 0xfffffff0
cmp esi, ebx
je 0x43ec4f
cmp dword [ebx + 0xc], 0
jl 0x43ec3f
mov ecx, dword [esi]
cmp ecx, dword [ebx]
jne 0x43ec3f
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x43ebdf
cmp eax, dword [esi]
jne 0x43ebdf
mov edi, esi
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x43ec1b
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
jne 0x43ebf8
call fcn.0043d450
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.0054de82
add esp, 0x10
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43ec34
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
add edi, 0x10
mov dword [ebp - 0x228], edi
jmp 0x43ec4f
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebp - 0x228]
call fcn.00407870
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x220]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43ec75
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebp - 0x234]
lea ecx, [ebp - 0x238]
push ecx
push edx
lea eax, [ebp - 0x23c]
push eax
call fcn.004135f0
add esp, 0xc
push str..ddproj
push eax
lea ecx, [ebp - 0x220]
push ecx
mov byte [ebp - 4], 0xc
call fcn.0040d110
add esp, 0xc
mov byte [ebp - 4], 0xd
mov ebx, dword [ebp - 0x230]
mov eax, dword [eax]
mov edi, dword [ebx]
lea esi, [eax - 0x10]
sub edi, 0x10
cmp esi, edi
je 0x43ed6c
cmp dword [edi + 0xc], 0
jl 0x43ed60
mov ecx, dword [esi]
cmp ecx, dword [edi]
jne 0x43ed60
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x43ecfc
cmp eax, dword [esi]
jne 0x43ecfc
mov ebx, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x43ed38
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
jne 0x43ed15
call fcn.0043d450
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.0054de82
add esp, 0x10
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43ed51
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [ebp - 0x230]
add ebx, 0x10
mov dword [ecx], ebx
mov ebx, ecx
jmp 0x43ed6c
mov ecx, dword [eax - 0xc]
push ecx
push eax
mov ecx, ebx
call fcn.00407870
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x220]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43ed92
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x23c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43edb8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebx]
mov esi, dword [ebp - 0x228]
push 1
push eax
push esi
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov dword [ebp - 0x224], eax
test eax, eax
jne 0x43edfd
mov ecx, dword [ebp - 0x240]
push str.T_rT
call fcn.00407960
lea eax, [esi - 0x10]
mov byte [ebp - 4], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x43f314
mov esi, dword [ebx]
push ecx
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x220], esp
mov dword [ebp - 0x220], esp
call eax
cmp dword [esi - 4], 0
lea ecx, [esi - 4]
jl 0x43ee32
cmp eax, dword [esi - 0x10]
jne 0x43ee32
lea edi, [esi - 0x10]
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x43ee6b
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
jne 0x43ee4b
call fcn.0043d450
mov eax, dword [esi - 0xc]
mov dword [edi + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.0054de82
add esp, 0x10
mov ecx, dword [ebp - 0x220]
lea edx, [ebp - 0x4a4]
add edi, 0x10
push edx
mov dword [ecx], edi
call fcn.00438450
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x4a4]
mov esi, 1
mov dword [ebp - 0x22c], 0
cmp dword [eax - 4], esi
jle 0x43eeb5
mov eax, dword [eax - 0xc]
push eax
lea ecx, [ebp - 0x4a4]
call fcn.004076d0
mov eax, dword [ebp - 0x4a4]
mov edx, dword [ebp - 0x49c]
lea ecx, [ebp - 0x22c]
push ecx
push eax
mov ecx, str.des_sqlite
call fcn.00447c70
test eax, eax
je 0x43eeee
mov edx, dword [ebp - 0x22c]
mov eax, dword [ebp - 0x240]
push edx
push 0x5af638
push eax
call fcn.00409220
add esp, 0xc
jmp 0x43ef04
mov ecx, dword [ebp - 0x240]
push ecx
lea edi, [ebp - 0x4a4]
call fcn.00439600
test eax, eax
jne 0x43ef06
xor esi, esi
mov dword [ebp - 0x224], esi
test esi, esi
jne 0x43ef3f
lea edx, [ebp - 0x4a4]
push edx
mov byte [ebp - 4], 0xa
call fcn.004386b0
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x228]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x43f314
lea edx, [ebp - 0x224]
mov dword [ebp - 0x220], edx
call fcn.0044d418
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x43ef65
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x224], eax
mov ecx, str._SolutionDir_Resource
mov byte [ebp - 4], 0xf
test ecx, 0xffff0000
jne 0x43efa6
mov edx, ecx
movzx esi, dx
push esi
call fcn.0044d834
test eax, eax
je 0x43efb8
push esi
push eax
lea ecx, [ebp - 0x224]
call fcn.004074b0
jmp 0x43efb8
push 0x15
push str._SolutionDir_Resource
lea ecx, [ebp - 0x224]
call fcn.00407870
mov byte [ebp - 4], 0x10
mov esi, dword [ebp - 0x224]
push 0
push ecx
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x220], esp
mov ebx, esp
call edx
cmp dword [esi - 4], 0
lea ecx, [esi - 4]
jl 0x43eff3
cmp eax, dword [esi - 0x10]
jne 0x43eff3
lea edi, [esi - 0x10]
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x43f02c
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
jne 0x43f00c
call fcn.0043d450
mov eax, dword [esi - 0xc]
mov dword [edi + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.0054de82
add esp, 0x10
add edi, 0x10
mov dword [ebx], edi
push ecx
mov bl, 0x11
mov byte [ebp - 4], bl
mov esi, esp
mov dword [ebp - 0x23c], esp
mov dword [ebp - 0x23c], esi
call fcn.0044d418
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x43f05f
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
mov ecx, str.Pack_Res_Path
mov byte [ebp - 4], 0x12
test ecx, 0xffff0000
jne 0x43f098
mov edx, ecx
movzx edi, dx
push edi
call fcn.0044d834
test eax, eax
je 0x43f0a6
push edi
push eax
mov ecx, esi
call fcn.004074b0
jmp 0x43f0a6
push 0xd
push str.Pack_Res_Path
mov ecx, esi
call fcn.00407870
lea eax, [ebp - 0x4a4]
mov byte [ebp - 4], bl
push eax
mov byte [ebp - 4], 0x10
call fcn.00438eb0
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x224]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43f0df
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x220], ecx
call fcn.0044d418
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x43f105
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x230], eax
mov ecx, 0x5aaef4
mov byte [ebp - 4], 0x13
test ecx, 0xffff0000
jne 0x43f146
mov edx, ecx
movzx esi, dx
push esi
call fcn.0044d834
test eax, eax
je 0x43f158
push esi
push eax
lea ecx, [ebp - 0x230]
call fcn.004074b0
jmp 0x43f158
push 0
push 0x5aaef4
lea ecx, [ebp - 0x230]
call fcn.00407870
mov byte [ebp - 4], 0x14
mov esi, dword [ebp - 0x230]
push 0
push ecx
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x220], esp
mov ebx, esp
call edx
cmp dword [esi - 4], 0
lea ecx, [esi - 4]
jl 0x43f193
cmp eax, dword [esi - 0x10]
jne 0x43f193
lea edi, [esi - 0x10]
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x43f1cc
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
jne 0x43f1ac
call fcn.0043d450
mov eax, dword [esi - 0xc]
mov dword [edi + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.0054de82
add esp, 0x10
add edi, 0x10
mov dword [ebx], edi
push ecx
mov byte [ebp - 4], 0x15
mov esi, esp
mov dword [ebp - 0x23c], esp
mov dword [ebp - 0x23c], esi
call fcn.0044d418
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x43f1fe
push 0x80004005
call fcn.00407ad0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
mov ecx, str.Setup_Icon
mov byte [ebp - 4], 0x16
test ecx, 0xffff0000
jne 0x43f237
mov edx, ecx
movzx edi, dx
push edi
call fcn.0044d834
test eax, eax
je 0x43f245
push edi
push eax
mov ecx, esi
call fcn.004074b0
jmp 0x43f245
push 0xa
push str.Setup_Icon
mov ecx, esi
call fcn.00407870
lea eax, [ebp - 0x4a4]
mov byte [ebp - 4], 0x15
push eax
mov byte [ebp - 4], 0x14
call fcn.00438eb0
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x230]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43f27f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [ebp - 0x240]
mov ecx, dword [edi]
cmp dword [ecx - 0xc], 0
mov esi, dword [ecx - 0x10]
lea eax, [ecx - 0x10]
je 0x43f2e0
cmp dword [eax + 0xc], 0
lea edx, [eax + 0xc]
jge 0x43f2bc
cmp dword [ecx - 8], 0
jge 0x43f2ac
push 0x80070057
call fcn.00407ad0
mov dword [ecx - 0xc], 0
mov ecx, dword [edi]
xor edx, edx
mov word [ecx], dx
jmp 0x43f2e0
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43f2d2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
mov ecx, esi
call eax
add eax, 0x10
mov dword [edi], eax
lea ecx, [ebp - 0x4a4]
push ecx
mov dword [ebp - 0x224], 1
mov byte [ebp - 4], 0xa
call fcn.004386b0
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x228]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43f320
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x374]
push ecx
mov byte [ebp - 4], 4
call fcn.004386b0
mov edi, dword [ebp - 0x244]
cmp dword [edi - 0xc], 0
jle 0x43f343
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ebx, dword [ebp - 0x224]
test ebx, ebx
jne 0x43f37c
mov edx, dword [ebp - 0x234]
mov eax, dword [edx]
cmp dword [eax - 0xc], ebx
jle 0x43f37c
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x220], esp
mov esi, esp
push eax
call fcn.00407af0
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.0044a3c0
add esp, 4
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x238]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43f3a2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov byte [ebp - 4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43f3c2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43f3e5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43f408
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43f42e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, ebx
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.0054bd91
mov esp, ebp
pop ebp
ret 0x14