Function at 0x41de80
Capabilities:
Accept command line arguments
Check if file exists
Check mutex on windows
Create process on windows
Create process suspended
Delete file
Get common file path
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6209f0
mov eax, dword fs:[0]
push eax
mov eax, 0x1de8
call fcn.004fa510
mov eax, dword [0x690a1c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
push str.jian_desktop_run_mutex
push 1
push 0
mov dword [ebp - 0x1db0], esi
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
test eax, eax
je 0x41e227
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x41e227
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov edx, eax
mov dword [ebp - 0x1440], 0
mov ecx, edx
mov dword [ebp - 0x143c], 7
xor eax, eax
mov word [ebp - 0x1450], ax
lea esi, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41df10
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x1450]
call fcn.00417940
lea eax, [ebp - 0x1450]
push eax
lea ecx, [ebp - 0x1498]
call fcn.0046af90
lea ecx, [ebp - 0x1450]
call fcn.0040efb0
xor eax, eax
mov dword [ebp - 0x1428], 0
push 4
push 0x6344cc
lea ecx, [ebp - 0x1450]
mov dword [ebp - 0x1424], 7
mov word [ebp - 0x1438], ax
mov dword [ebp - 0x1440], eax
mov dword [ebp - 0x143c], 7
mov word [ebp - 0x1450], ax
call fcn.00417940
lea eax, [ebp - 0x1438]
push eax
lea eax, [ebp - 0x1450]
push eax
lea ecx, [ebp - 0x1498]
call fcn.0046b7e0
lea ecx, [ebp - 0x1450]
call fcn.0040efb0
cmp dword [ebp - 0x1424], 8
lea eax, [ebp - 0x1438]
push str.desktop
cmovae eax, dword [ebp - 0x1438]
push eax
call fcn.005f64cb
add esp, 8
test eax, eax
je 0x41e0a3
cmp dword [ebp - 0x1424], 8
lea eax, [ebp - 0x1438]
push str.tray
cmovae eax, dword [ebp - 0x1438]
push eax
call fcn.005f64cb
add esp, 8
test eax, eax
je 0x41e0a3
cmp dword [ebp - 0x1424], 8
lea eax, [ebp - 0x1438]
push str.startmenu
cmovae eax, dword [ebp - 0x1438]
push eax
call fcn.005f64cb
add esp, 8
test eax, eax
je 0x41e0a3
cmp dword [ebp - 0x1424], 8
lea eax, [ebp - 0x1438]
push str.rmenu
cmovae eax, dword [ebp - 0x1438]
push eax
call fcn.005f64cb
add esp, 8
test eax, eax
je 0x41e0a3
cmp dword [ebp - 0x1424], 8
lea eax, [ebp - 0x1438]
push str.lds_start
cmovae eax, dword [ebp - 0x1438]
push eax
call fcn.005f64cb
add esp, 8
test eax, eax
je 0x41e0a3
cmp dword [ebp - 0x1424], 8
lea eax, [ebp - 0x1438]
push str.rmenu_store
cmovae eax, dword [ebp - 0x1438]
push eax
call fcn.005f64cb
add esp, 8
test eax, eax
jne 0x41e20c
xor eax, eax
mov dword [ebp - 0x1440], 0
push 0xa
push str.mirrorPath
lea ecx, [ebp - 0x1468]
mov dword [ebp - 0x143c], 7
mov word [ebp - 0x1450], ax
mov dword [ebp - 0x1458], eax
mov dword [ebp - 0x1454], 7
mov word [ebp - 0x1468], ax
call fcn.00417940
lea eax, [ebp - 0x1450]
push eax
lea eax, [ebp - 0x1468]
push eax
lea ecx, [ebp - 0x1498]
call fcn.0046b7e0
lea ecx, [ebp - 0x1468]
call fcn.0040efb0
push 0
push str.Desktop_sort_Wnd_class
call dword [sym.imp.USER32.dll_FindWindowW]
mov esi, eax
push esi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x41e201
cmp dword [ebp - 0x1424], 8
lea ecx, [ebp - 0x1438]
push str.tray
cmovae ecx, dword [ebp - 0x1438]
push ecx
call fcn.005f64cb
add esp, 8
test eax, eax
je 0x41e18b
cmp dword [ebp - 0x1424], 8
lea eax, [ebp - 0x1438]
push 0
cmovae eax, dword [ebp - 0x1438]
push 0
push str.rmenu_store
push eax
call fcn.005f64cb
add esp, 8
neg eax
sbb eax, eax
and eax, 0xffffffd9
add eax, 0x444
push eax
push esi
call dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [ebp - 0x1440], 0
je 0x41e201
push 2
push 0x16
push 2
lea ecx, [ebp - 0x1464]
call fcn.00468e80
lea eax, [ebp - 0x1450]
push eax
lea ecx, [ebp - 0x1464]
call fcn.00468de0
mov ecx, dword [ebp - 0x1460]
push 0
mov dword [ebp - 0x1ddc], 0x2711
push 0x1388
mov eax, dword [ecx]
add eax, dword [ebp - 0x145c]
push 1
mov dword [ebp - 0x1dd8], eax
lea eax, [ebp - 0x1ddc]
push eax
push 0
push 0x4a
push esi
mov dword [ebp - 0x1dd4], ecx
call dword [sym.imp.USER32.dll_SendMessageTimeoutW]
lea ecx, [ebp - 0x1464]
call fcn.00468f80
lea ecx, [ebp - 0x1450]
call fcn.0040efb0
lea ecx, [ebp - 0x1438]
call fcn.0040efb0
lea ecx, [ebp - 0x1498]
call fcn.0046b160
jmp 0x41ec91
cmp dword [0x69004c], 0
mov eax, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ecx, dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x1dcc], eax
mov dword [ebp - 0x1dd0], ecx
je 0x41e301
push str.ntdll.dll
mov dword [ebp - 0x1db8], 0
mov dword [ebp - 0x1db4], 0
mov dword [ebp - 0x1da8], 0
mov dword [ebp - 0x1dac], 0
call eax
mov esi, eax
test esi, esi
je 0x41e2f1
push str.RtlGetNtVersionNumbers
push esi
call edi
test eax, eax
je 0x41e2c0
lea ecx, [ebp - 0x1da8]
push ecx
lea ecx, [ebp - 0x1db4]
push ecx
lea ecx, [ebp - 0x1db8]
push ecx
call eax
movzx eax, word [ebp - 0x1da8]
mov dword [ebp - 0x1da8], eax
mov dword [ebp - 0x1dac], 1
push esi
call dword [ebp - 0x1dd0]
cmp dword [ebp - 0x1dac], 0
je 0x41e2f1
cmp dword [ebp - 0x1db8], 6
jne 0x41e2f1
mov eax, dword [0x69f728]
mov ecx, 1
cmp dword [ebp - 0x1db4], ecx
cmove eax, ecx
mov dword [0x69f728], eax
mov esi, dword [ebp - 0x1db0]
mov dword [0x69004c], 0
cmp dword [0x69f728], 0
je 0x41e312
push 0
call dword [sym.imp.KERNEL32.dll_SetProcessDEPPolicy]
lea ecx, [ebp - 0x1dc1]
call fcn.0041cda0
push 0
push 0
push str.jdeskmain
call fcn.0041b9a0
add esp, 0xc
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
push 0
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_DefWindowProcW]
lea eax, [ebp - 0x1dd8]
mov dword [ebp - 0x1dd8], 8
push eax
mov dword [ebp - 0x1dd4], 4
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
push 0
push esi
push 0
mov ecx, 0x69f6d4
call fcn.0041b880
push 0x208
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.005e3920
add esp, 0xc
lea eax, [ebp - 0x420]
push eax
push 0
push 0
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
push str.jiandeskLogjiandesk.log
lea eax, [ebp - 0x420]
push eax
mov eax, dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov dword [ebp - 0x1dc8], eax
call eax
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0x6331a8
push 0xa00000
push 0
push 1
lea eax, [ebp - 0x420]
push eax
call fcn.0047d650
lea eax, [ebp - 0x420]
push eax
mov eax, dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov dword [ebp - 0x1dd4], eax
call eax
lea eax, [ebp - 0x420]
push eax
mov eax, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov dword [ebp - 0x1db4], eax
call eax
test eax, eax
jne 0x41e422
lea eax, [ebp - 0x420]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
push str.JDeskTray.exe
call fcn.004584e0
add esp, 4
test al, al
mov eax, dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov dword [ebp - 0x1de0], eax
jne 0x41e591
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.005e3920
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push eax
push 0
call dword [ebp - 0x1de0]
lea eax, [ebp - 0x218]
push eax
call dword [ebp - 0x1dd4]
push str.JDeskTray.exe
lea eax, [ebp - 0x218]
push eax
call dword [ebp - 0x1dc8]
lea eax, [ebp - 0x218]
push eax
call dword [ebp - 0x1db4]
test eax, eax
je 0x41e591
xorps xmm0, xmm0
mov dword [ebp - 0x14ac], 0x44
lea eax, [ebp - 0x14ac]
movlpd qword [ebp - 0x14a8], xmm0
push eax
movlpd qword [ebp - 0x14a0], xmm0
movlpd qword [ebp - 0x1498], xmm0
movlpd qword [ebp - 0x1490], xmm0
movlpd qword [ebp - 0x1488], xmm0
movlpd qword [ebp - 0x1480], xmm0
movlpd qword [ebp - 0x1478], xmm0
movlpd qword [ebp - 0x1470], xmm0
call dword [sym.imp.KERNEL32.dll_GetStartupInfoW]
mov eax, 4
mov dword [ebp - 0x1480], 1
push 0x1000
mov word [ebp - 0x147c], ax
xorps xmm0, xmm0
lea eax, [ebp - 0x1420]
push 0
push eax
movups xmmword [ebp - 0x1460], xmm0
call fcn.005e3920
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x1420]
push str.__s____fromtray
push eax
call fcn.0041a990
add esp, 0x18
lea eax, [ebp - 0x1460]
push eax
lea eax, [ebp - 0x14ac]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x1420]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x41e591
push dword [ebp - 0x145c]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x1460]
call esi
mov esi, dword [ebp - 0x1db0]
push esi
call fcn.004882b0
lea eax, [ebp - 0x1530]
push eax
call fcn.00483b10
add esp, 8
lea ecx, [ebp - 0x1530]
push str.skin
call fcn.004803e0
lea ecx, [ebp - 0x1530]
call fcn.0043f3b0
push eax
call fcn.00488530
push 1
push str.desktop.uiz
call fcn.00488600
push 1
call fcn.00488580
xor eax, eax
push 0x208
push eax
mov dword [ebp - 0x1db0], eax
mov dword [ebp - 0x1dac], eax
lea eax, [ebp - 0x218]
push eax
call fcn.005e3920
add esp, 0x1c
lea eax, [ebp - 0x218]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push str.Shcore.dll
lea eax, [ebp - 0x218]
push eax
call dword [ebp - 0x1dc8]
lea eax, [ebp - 0x218]
push eax
call dword [ebp - 0x1db4]
test eax, eax
je 0x41e663
lea eax, [ebp - 0x218]
push eax
call dword [ebp - 0x1dcc]
mov esi, eax
test esi, esi
je 0x41e663
push str.SetProcessDpiAwareness
push esi
call edi
push str.GetProcessDpiAwareness
push esi
mov dword [ebp - 0x1db0], eax
call edi
push str.GetDpiForMonitor
push esi
call edi
push str.User32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov esi, eax
test esi, esi
je 0x41e69a
push str.SetProcessDPIAware
push esi
call edi
push str.IsProcessDPIAware
push esi
mov dword [ebp - 0x1dac], eax
call edi
push str.LogicalToPhysicalPoint
push esi
call edi
push str.PhysicalToLogicalPoint
push esi
call edi
mov eax, dword [ebp - 0x1db0]
test eax, eax
je 0x41e6ac
push 2
call eax
test eax, eax
jns 0x41e6b8
mov eax, dword [ebp - 0x1dac]
test eax, eax
je 0x41e6b8
call eax
push 0
lea eax, [ebp - 0x1df0]
mov dword [ebp - 0x1df0], 1
push eax
lea eax, [ebp - 0x1df4]
mov dword [ebp - 0x1dec], 0
push eax
mov dword [ebp - 0x1de8], 0
mov dword [ebp - 0x1de4], 0
call sub.gdiplus.dll_GdiplusStartup
mov eax, dword [0x69f0a4]
add eax, 0x10
mov dword [ebp - 0x1dc0], eax
push eax
mov eax, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [ebp - 0x1db8], eax
call eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, dword [0x69f708]
push 4
mov dword [ebp - 0x1dbc], eax
mov ecx, dword [esi + 8]
inc ecx
push ecx
push dword [esi]
call fcn.005ebe79
add esp, 0xc
test eax, eax
je 0x41e77b
mov dword [esi], eax
mov eax, dword [esi + 8]
push 4
inc eax
push eax
push dword [esi + 4]
call fcn.005ebe79
add esp, 0xc
test eax, eax
je 0x41e77b
mov ecx, dword [esi + 8]
mov dword [esi + 4], eax
lea edx, [ecx*4]
mov ecx, dword [esi]
add ecx, edx
je 0x41e76e
mov eax, dword [ebp - 0x1dbc]
mov dword [ecx], eax
mov eax, dword [esi + 4]
add eax, edx
je 0x41e778
mov dword [eax], 0x690054
inc dword [esi + 8]
push dword [ebp - 0x1dc0]
mov eax, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [ebp - 0x1dac], eax
call eax
cmp dword [0x690050], 0
je 0x41e848
push str.ntdll.dll
mov dword [ebp - 0x1dc0], 0
mov dword [ebp - 0x1dbc], 0
mov dword [ebp - 0x1da8], 0
mov dword [ebp - 0x1db0], 0
call dword [ebp - 0x1dcc]
mov esi, eax
test esi, esi
je 0x41e83e
push str.RtlGetNtVersionNumbers
push esi
call edi
test eax, eax
je 0x41e80e
lea ecx, [ebp - 0x1da8]
push ecx
lea ecx, [ebp - 0x1dbc]
push ecx
lea ecx, [ebp - 0x1dc0]
push ecx
call eax
movzx eax, word [ebp - 0x1da8]
mov dword [ebp - 0x1da8], eax
mov dword [ebp - 0x1db0], 1
push esi
call dword [ebp - 0x1dd0]
cmp dword [ebp - 0x1db0], 0
je 0x41e83e
cmp dword [ebp - 0x1dc0], 6
jne 0x41e832
cmp dword [ebp - 0x1dbc], 1
jae 0x41e834
jmp 0x41e83e
jbe 0x41e83e
mov dword [0x69f72c], 1
mov dword [0x690050], 0
cmp dword [0x69f72c], 0
je 0x41e871
push str.Program_Manager
push str.Progman
call dword [sym.imp.USER32.dll_FindWindowW]
push 0
push 0
push 0x52c
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
call fcn.00458480
mov esi, dword [0x69c754]
mov dword [ebp - 0x1dbc], eax
test esi, esi
jne 0x41e8e0
push 0x690004
call dword [ebp - 0x1db8]
cmp dword [0x69c754], esi
jne 0x41e8cf
push 0x1c
call fcn.004fa137
add esp, 4
test eax, eax
je 0x41e8bd
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], esi
mov dword [eax + 0x18], esi
mov dword [eax], esi
mov dword [eax + 4], esi
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
jmp 0x41e8bf
xor eax, eax
xor edx, edx
lea ecx, [ebp - 0x1dc0]
lock or dword [ecx], edx
mov dword [0x69c754], eax
push 0x690004
call dword [ebp - 0x1dac]
mov esi, dword [0x69c754]
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.005e3920
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push eax
push 0x400000
call dword [ebp - 0x1de0]
lea eax, [ebp - 0x218]
push eax
call dword [ebp - 0x1dd4]
push str.netul.dll
lea eax, [ebp - 0x218]
push eax
call dword [ebp - 0x1dc8]
lea eax, [ebp - 0x218]
push eax
call dword [ebp - 0x1db4]
test eax, eax
je 0x41e99c
cmp dword [esi], 0
jne 0x41e99c
lea eax, [ebp - 0x218]
push eax
call dword [ebp - 0x1dcc]
mov dword [esi], eax
test eax, eax
je 0x41e99c
push str.HttpInit
push eax
call edi
push str.HttpUninit
push dword [esi]
mov dword [esi + 4], eax
call edi
push str.zlib_uncompress
push dword [esi]
mov dword [esi + 8], eax
call edi
push str.zlib_compress
push dword [esi]
mov dword [esi + 0x10], eax
call edi
push str.zlib_compressBound
push dword [esi]
mov dword [esi + 0x14], eax
call edi
mov dword [esi + 0x18], eax
mov eax, dword [esi + 4]
test eax, eax
je 0x41e99c
call eax
mov dword [esi + 0xc], eax
mov esi, dword [ebp - 0x1dbc]
lea ecx, [ebp - 0x1da4]
push esi
call fcn.0042ad00
push 0
sub esp, 0x10
lea ecx, [ebp - 0x1da4]
mov eax, esp
xorps xmm0, xmm0
push 0x80
push SysReAllocStringLen
push 0x634618
push esi
movups xmmword [eax], xmm0
call fcn.00489260
lea ecx, [ebp - 0x1da4]
call fcn.004322e0
mov edi, dword [sym.imp.USER32.dll_PeekMessageW]
mov edx, 1
mov dword [ebp - 0x1da8], edx
xor esi, esi
test edx, edx
je 0x41ea26
push 0
push 0
push 0
push 0
push 0x690070
call edi
test eax, eax
jne 0x41ea26
mov eax, dword [0x690054]
mov ecx, 0x690054
push esi
mov eax, dword [eax + 4]
call eax
inc esi
test eax, eax
jne 0x41e9f8
mov dword [ebp - 0x1da8], eax
push 0
push 0
push 0
push 0x690070
call dword [sym.imp.USER32.dll_GetMessageW]
mov edx, dword [ebp - 0x1da8]
cmp eax, 0xffffffff
je 0x41e9f4
test eax, eax
je 0x41eac5
mov eax, dword [0x690054]
mov ecx, 0x690054
push 0x690070
mov eax, dword [eax]
call eax
test eax, eax
jne 0x41ea73
push 0x690070
call dword [sym.imp.USER32.dll_TranslateMessage]
push 0x690070
call dword [sym.imp.USER32.dll_DispatchMessageW]
mov eax, dword [0x690074]
cmp eax, 0x118
ja 0x41ea8d
je 0x41eaaf
cmp eax, 0xf
je 0x41eaaf
cmp eax, 0xa0
jmp 0x41ea92
cmp eax, 0x200
je 0x41eaaf
mov ecx, 1
xor eax, eax
test ecx, ecx
mov edx, ecx
mov dword [ebp - 0x1da8], edx
cmove eax, esi
mov esi, eax
jmp 0x41e9f4
mov edx, dword [ebp - 0x1da8]
xor ecx, ecx
xor eax, eax
test ecx, ecx
cmove eax, esi
mov esi, eax
jmp 0x41e9f4
lea ecx, [ebp - 0x1da4]
call fcn.00439530
cmp dword [0x69c754], 0
je 0x41eb50
push 0x690004
call dword [ebp - 0x1db8]
mov esi, dword [0x69c754]
test esi, esi
je 0x41eb45
mov eax, dword [esi + 8]
mov dword [ebp - 4], 0
test eax, eax
je 0x41eb01
push dword [esi + 0xc]
call eax
mov eax, dword [esi]
test eax, eax
je 0x41eb29
push eax
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0x10], 0
call dword [ebp - 0x1dd0]
mov dword [esi], 0
push 0x1c
push esi
mov dword [ebp - 4], 0xffffffff
call fcn.004fa0f5
add esp, 8
mov dword [0x69c754], 0
push 0x690004
call dword [ebp - 0x1dac]
mov ecx, 0x69f6d4
call fcn.0041cc70
mov edi, dword [0x69f0a4]
add edi, 0x10
push edi
call dword [ebp - 0x1db8]
mov esi, dword [0x69f70c]
test esi, esi
je 0x41ebbc
cmp dword [esi + 4], 0
jle 0x41eb8a
mov eax, dword [esi]
push dword [eax]
call dword [sym.imp.USER32.dll_DestroyWindow]
mov esi, dword [0x69f70c]
test esi, esi
je 0x41ebbc
mov eax, dword [esi]
test eax, eax
je 0x41eba3
push eax
call fcn.005ebe53
add esp, 4
mov dword [esi], 0
push 0xc
push esi
mov dword [esi + 4], 0
mov dword [esi + 8], 0
call fcn.004fa0f5
add esp, 8
push edi
mov dword [0x69f70c], 0
call dword [ebp - 0x1dac]
mov esi, dword [0x69f708]
test esi, esi
je 0x41ec15
mov eax, dword [esi]
test eax, eax
je 0x41ebec
push eax
call fcn.005ebe53
add esp, 4
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x41ec03
push eax
call fcn.005ebe53
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
mov dword [esi + 8], 0
call fcn.004fa0f5
add esp, 8
mov esi, dword [0x69f700]
test esi, esi
je 0x41ec47
cmp dword [esi], 0
je 0x41ec47
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x41ec31
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [esi + 0x20]
push 0
mov dword [esi + 0x10], 0
call eax
add esi, 0x24
cmp dword [esi], 0
jne 0x41ec24
mov esi, dword [0x69002c]
mov ecx, dword [0x690030]
cmp esi, ecx
jae 0x41ec71
mov eax, dword [esi]
test eax, eax
je 0x41ec6a
mov eax, dword [eax + 0x1c]
push 0
call eax
mov ecx, dword [0x690030]
add esi, 4
cmp esi, ecx
jb 0x41ec57
mov ecx, 0x69f6d4
call fcn.0041cfe0
lea ecx, [ebp - 0x1da4]
call fcn.0042b900
lea ecx, [ebp - 0x1530]
call fcn.004087b0
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004fa103
mov esp, ebp
pop ebp
ret 0x10