Function at 0x446620
Capabilities:
Create directory
Create thread
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6a8
mov eax, dword [0x579258]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push str.__JYBookcn_dlg_
mov dword [ebp - 0x6a0], eax
mov dword [0x582540], eax
call fcn.00456970
add esp, 4
test eax, eax
je 0x4470c9
push 0x104
lea eax, [ebp - 0x108]
push 0
push eax
call fcn.004ecad0
add esp, 0xc
lea eax, [ebp - 0x108]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x104
lea eax, [ebp - 0x518]
push 0
push eax
call fcn.004ecad0
lea eax, [ebp - 0x518]
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.00423e70
lea ecx, [ebp - 0x518]
mov dword [ebp - 0x654], 0
add esp, 0x14
mov dword [ebp - 0x650], 0xf
mov byte [ebp - 0x664], 0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4466d0
push esi
sub ecx, edx
lea eax, [ebp - 0x518]
push ecx
push eax
lea ecx, [ebp - 0x664]
call fcn.00404d00
push 0x3a8
lea eax, [ebp - 0x664]
push eax
lea eax, [ebp - 0x67c]
push eax
call fcn.00428e60
mov esi, eax
add esp, 0xc
cmp esi, 0x57906c
je 0x446791
mov ecx, dword [0x579080]
cmp ecx, 8
jb 0x446751
mov eax, dword [0x57906c]
lea ecx, [ecx*2 + 2]
cmp ecx, 0x1000
jb 0x446747
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4470db
mov eax, edx
push ecx
push eax
call fcn.00460404
add esp, 8
mov dword [0x57907c], 0
xor eax, eax
mov dword [0x579080], 7
mov word [0x57906c], ax
movups xmm0, xmmword [esi]
movups xmmword [0x57906c], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [0x57907c], xmm0
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], 7
mov word [esi], ax
lea ecx, [ebp - 0x67c]
call fcn.00419a40
mov edx, dword [ebp - 0x650]
cmp edx, 0x10
jb 0x4467d6
mov ecx, dword [ebp - 0x664]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4467cc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4470db
push edx
push ecx
call fcn.00460404
add esp, 8
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
call fcn.00456c90
lea eax, [ebp - 0x664]
push 0
push eax
call fcn.0042dc50
mov esi, eax
add esp, 8
cmp dword [esi + 0x14], 0x10
jb 0x4467fe
mov esi, dword [esi]
call fcn.004472c0
mov ecx, eax
test ecx, ecx
je 0x4470e0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x698], eax
test esi, esi
je 0x446838
test esi, 0xffff0000
jne 0x446838
movzx eax, si
lea ecx, [ebp - 0x698]
push eax
call fcn.004473c0
jmp 0x446844
push esi
lea ecx, [ebp - 0x698]
call fcn.00447730
mov edx, dword [ebp - 0x650]
cmp edx, 0x10
jb 0x44687e
mov ecx, dword [ebp - 0x664]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x446874
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4470ea
push edx
push ecx
call fcn.00460404
add esp, 8
mov esi, dword [ebp - 0x698]
push ebx
push edi
push 0x5c
push esi
call fcn.004fed5f
mov ecx, eax
add esp, 8
sub ecx, esi
or ebx, 0xffffffff
test eax, eax
mov eax, dword [esi - 0xc]
cmove ecx, ebx
sub eax, ecx
lea ecx, [ebp - 0x698]
dec eax
push eax
lea eax, [ebp - 0x69c]
push eax
call fcn.00447590
mov edi, dword [ebp - 0x69c]
cmp dword [edi - 0xc], 0
jl 0x4468d0
push str._sdcn
push edi
call fcn.004fee0d
add esp, 8
cmp dword [0x579200], 8
mov eax, 0x5791ec
mov dword [0x58251c], 1
cmovae eax, dword [0x5791ec]
push eax
call fcn.00455170
add esp, 4
test eax, eax
jne 0x446916
cmp dword [0x579200], 8
mov eax, 0x5791ec
push 0
cmovae eax, dword [0x5791ec]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0x208
lea eax, [ebp - 0x20c]
push 0
push eax
call fcn.004ecad0
cmp dword [0x579200], 8
mov eax, 0x5791ec
push 0x53eb44
cmovae eax, dword [0x5791ec]
push eax
lea eax, [ebp - 0x20c]
push 0x53ea10
push eax
call fcn.004203b0
add esp, 0x1c
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x446979
push eax
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x4469d5
push 0x208
lea eax, [ebp - 0x61c]
push 0
push eax
call fcn.004ecad0
cmp dword [0x579200], 8
mov eax, 0x5791ec
push str.JYBook.7z
cmovae eax, dword [0x5791ec]
push str.bin_
push eax
lea eax, [ebp - 0x61c]
push 0x53eb34
push eax
call fcn.004203b0
push 0x53fc3c
lea eax, [ebp - 0x61c]
push 0x67
push eax
call fcn.00456ae0
add esp, 0x2c
test eax, eax
jne 0x446a02
call dword [sym.imp.ole32.dll_CoUninitialize]
add edi, 0xfffffff0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x4469f2
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], ebx
dec ebx
test ebx, ebx
jmp 0x4470bc
push 0x208
lea eax, [ebp - 0x414]
push 0
push eax
call fcn.004ecad0
lea eax, [ebp - 0x414]
push eax
call fcn.004215a0
add esp, 0x10
test eax, eax
je 0x446aa1
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [ebp - 0x414]
push eax
call ebx
test eax, eax
jle 0x446aa1
lea eax, [ebp - 0x414]
mov dword [0x582524], 1
push eax
call ebx
cmp word [ebp + eax*2 - 0x416], 0x5c
jne 0x446a75
lea eax, [eax*2 - 2]
cmp eax, 0x208
jae 0x4470f9
xor ecx, ecx
mov word [ebp + eax - 0x414], cx
lea ecx, [ebp - 0x414]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x446a80
sub ecx, edx
lea eax, [ebp - 0x414]
sar ecx, 1
push ecx
push eax
mov ecx, 0x5791d4
call fcn.00416d70
cmp dword [0x58251c], 0
jne 0x446b94
call fcn.004472c0
mov ecx, eax
test ecx, ecx
je 0x4470ef
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x628], 0
push 0x85
lea ecx, [ebp - 0x62c]
mov dword [ebp - 0x62c], eax
mov dword [ebp - 0x624], 0
mov dword [ebp - 0x620], 0
call fcn.0043de70
push dword [ebp - 0x6a0]
call fcn.004663ae
push 0x390
call fcn.004603d4
add esp, 8
test eax, eax
je 0x446b84
mov ecx, eax
call fcn.0043c2e0
mov ebx, eax
mov dword [ebp - 0x698], ebx
test ebx, ebx
je 0x446b84
push 0
push SysReAllocStringLen
push SysReAllocStringLen
push SysReAllocStringLen
push SysReAllocStringLen
push 0
push 0x96c80000
push 0
push 0
mov ecx, ebx
call fcn.00461c4f
mov ecx, ebx
call fcn.00461af5
mov ecx, dword [ebp - 0x698]
mov ebx, eax
call fcn.00461af9
mov ecx, dword [ebp - 0x698]
push 1
call fcn.00461af5
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
call fcn.004657c8
push ebx
call dword [sym.imp.USER32.dll_DestroyWindow]
lea ecx, [ebp - 0x62c]
call fcn.0043da70
jmp 0x446c88
push 0x582504
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea ecx, [ebp - 0x414]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x446bb0
sub ecx, edx
sar ecx, 1
je 0x446c39
push 0x208
lea eax, [ebp - 0x20c]
push 0
push eax
call fcn.004ecad0
push str.SimpleBooksvc.exe
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x20c]
push 0x53eacc
push eax
call fcn.004203b0
push 0
push 1
push 0
lea eax, [ebp - 0x20c]
push str._stop
push eax
call fcn.004569d0
push 0
push 0
push 0
lea eax, [ebp - 0x20c]
push str._uninstall
push eax
call fcn.004569d0
add esp, 0x44
push str.SimpleBooksvc.exe
call fcn.00457400
push str.SimpleBook.exe
call fcn.00457400
add esp, 8
lea eax, [ebp - 0x6a4]
push eax
push 0
push 0
push 0x421730
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ebx, eax
push 0xffffffffffffffff
push ebx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [0x579068], 0
je 0x446c73
call fcn.00422d40
push 1
call fcn.00422b70
add esp, 4
push 0x582504
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
cmp dword [0x5791e8], 8
mov ecx, 0x5791d4
mov eax, dword [0x5791e4]
mov ebx, SysReAllocString
cmovae ecx, dword [0x5791d4]
mov dword [ebp - 0x63c], 0
mov dword [ebp - 0x638], 0
mov dword [ebp - 0x698], eax
mov dword [ebp - 0x69c], ecx
cmp eax, 8
jae 0x446ce0
movups xmm0, xmmword [ecx]
mov dword [ebp - 0x638], 7
movups xmmword [ebp - 0x64c], xmm0
jmp 0x446d36
mov ebx, eax
lea ecx, [ebp - 0x64c]
or ebx, 7
mov eax, SysReAllocString
cmp ebx, 0x7ffffffe
cmova ebx, eax
lea eax, [ebx + 1]
push eax
call fcn.00416d10
mov ecx, dword [ebp - 0x698]
mov dword [ebp - 0x64c], eax
lea ecx, [ecx*2 + 2]
push ecx
push dword [ebp - 0x69c]
push eax
call fcn.004ebfd0
mov eax, dword [ebp - 0x698]
add esp, 0xc
mov dword [ebp - 0x638], ebx
mov ebx, SysReAllocString
push 8
push str.missent
lea ecx, [ebp - 0x64c]
mov dword [ebp - 0x63c], eax
call fcn.00419ea0
cmp dword [ebp - 0x638], 8
lea eax, [ebp - 0x64c]
push 1
cmovae eax, dword [ebp - 0x64c]
push eax
call fcn.004557a0
push 0
call fcn.00456f10
add esp, 0xc
cmp dword [0x579064], 0
je 0x447034
push str.SimpleBook_update
call fcn.00426ff0
mov ax, word [0x53fcd8]
movq xmm0, qword [str.__smostart]
mov word [ebp - 0x65c], ax
lea eax, [ebp - 0x664]
push 0x3a8
push eax
lea eax, [ebp - 0x694]
mov dword [ebp - 0x650], 0xf
push eax
mov dword [ebp - 0x654], 0xa
movq qword [ebp - 0x664], xmm0
mov byte [ebp - 0x65a], 0
call fcn.00428e60
add esp, 0x10
mov dword [ebp - 0x69c], eax
cmp dword [eax + 0x14], 8
jb 0x446df2
mov eax, dword [eax]
mov dword [ebp - 0x69c], eax
mov eax, dword [0x5791e4]
sub ebx, eax
mov dword [ebp - 0x6a4], eax
cmp ebx, 1
jb 0x4470fe
cmp dword [0x5791e8], 8
mov ecx, 0x5791d4
mov ebx, 7
mov dword [ebp - 0x624], 0
cmovae ecx, dword [0x5791d4]
mov dword [ebp - 0x6a8], ecx
lea ecx, [eax + 1]
mov dword [ebp - 0x620], 0
lea eax, [ebp - 0x634]
mov dword [ebp - 0x6a0], ecx
mov dword [ebp - 0x698], eax
cmp ecx, ebx
jbe 0x446e92
mov ebx, ecx
or ebx, 7
cmp ebx, 0x7ffffffe
jbe 0x446e67
mov ebx, SysReAllocString
jmp 0x446e71
mov eax, 0xa
cmp ebx, eax
cmovb ebx, eax
lea eax, [ebx + 1]
push eax
lea ecx, [ebp - 0x634]
call fcn.00416d10
mov ecx, dword [ebp - 0x6a0]
mov dword [ebp - 0x698], eax
mov dword [ebp - 0x634], eax
mov dword [ebp - 0x620], ebx
mov ebx, dword [ebp - 0x6a4]
add ebx, ebx
mov dword [ebp - 0x624], ecx
push ebx
push dword [ebp - 0x6a8]
push eax
call fcn.004ebfd0
mov eax, dword [ebp - 0x698]
mov ecx, 0x5c
add esp, 0xc
xor edx, edx
mov word [eax + ebx], cx
mov ecx, dword [ebp - 0x6a0]
push 0xe
push str.SimpleBook.exe
mov word [eax + ecx*2], dx
lea ecx, [ebp - 0x634]
call fcn.00419ea0
push dword [ebp - 0x69c]
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x67c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x66c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
lea eax, [ebp - 0x67c]
cmp dword [ebp - 0x668], 8
cmovae eax, dword [ebp - 0x67c]
push eax
push str.SimpleBook_update
call fcn.00426cf0
mov edx, dword [ebp - 0x668]
add esp, 0xc
cmp edx, 8
jb 0x446f75
mov ecx, dword [ebp - 0x67c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x446f6b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x447103
push edx
push ecx
call fcn.00460404
add esp, 8
mov edx, dword [ebp - 0x620]
xor eax, eax
mov dword [ebp - 0x66c], 0
mov dword [ebp - 0x668], 7
mov word [ebp - 0x67c], ax
cmp edx, 8
jb 0x446fd2
mov ecx, dword [ebp - 0x634]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x446fc8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x447103
push edx
push ecx
call fcn.00460404
add esp, 8
xor eax, eax
mov dword [ebp - 0x624], 0
lea ecx, [ebp - 0x694]
mov dword [ebp - 0x620], 7
mov word [ebp - 0x634], ax
call fcn.00419a40
mov edx, dword [ebp - 0x650]
cmp edx, 0x10
jb 0x447034
mov ecx, dword [ebp - 0x664]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x44702a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x447103
push edx
push ecx
call fcn.00460404
add esp, 8
call dword [sym.imp.ole32.dll_CoUninitialize]
mov edx, dword [ebp - 0x638]
cmp edx, 8
jb 0x44707a
mov ecx, dword [ebp - 0x64c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x447070
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x447108
push edx
push ecx
call fcn.00460404
add esp, 8
xor eax, eax
mov dword [ebp - 0x63c], 0
lea edx, [edi - 0x10]
mov word [ebp - 0x64c], ax
or edi, 0xffffffff
mov dword [ebp - 0x638], 7
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4470b1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], edi
dec edi
test edi, edi
jg 0x4470c6
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
pop edi
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor eax, eax
xor ecx, ebp
call fcn.00460412
mov esp, ebp
pop ebp
ret 0x10
call fcn.004f5b2a
push 0x80004005
call fcn.0043e090
call fcn.004f5b2a
push 0x80004005
call fcn.0043e090
call fcn.004608bc
call fcn.00404fc0
call fcn.004f5b2a
call fcn.004f5b2a
int3