Function at 0x41dd50
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 0x61c820
mov eax, dword fs:[0]
push eax
mov eax, 0x1de8
call fcn.004f9e50
mov eax, dword [0x68d9ac]
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 0x41e0f7
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x41e0f7
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 0x41dde0
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x1450]
call fcn.00417880
lea eax, [ebp - 0x1450]
push eax
lea ecx, [ebp - 0x1498]
call fcn.0046a8b0
lea ecx, [ebp - 0x1450]
call fcn.0040eec0
xor eax, eax
mov dword [ebp - 0x1428], 0
push 4
push 0x6304cc
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.00417880
lea eax, [ebp - 0x1438]
push eax
lea eax, [ebp - 0x1450]
push eax
lea ecx, [ebp - 0x1498]
call fcn.0046b100
lea ecx, [ebp - 0x1450]
call fcn.0040eec0
cmp dword [ebp - 0x1424], 8
lea eax, [ebp - 0x1438]
push str.desktop
cmovae eax, dword [ebp - 0x1438]
push eax
call fcn.005f44d0
add esp, 8
test eax, eax
je 0x41df73
cmp dword [ebp - 0x1424], 8
lea eax, [ebp - 0x1438]
push str.tray
cmovae eax, dword [ebp - 0x1438]
push eax
call fcn.005f44d0
add esp, 8
test eax, eax
je 0x41df73
cmp dword [ebp - 0x1424], 8
lea eax, [ebp - 0x1438]
push str.startmenu
cmovae eax, dword [ebp - 0x1438]
push eax
call fcn.005f44d0
add esp, 8
test eax, eax
je 0x41df73
cmp dword [ebp - 0x1424], 8
lea eax, [ebp - 0x1438]
push str.rmenu
cmovae eax, dword [ebp - 0x1438]
push eax
call fcn.005f44d0
add esp, 8
test eax, eax
je 0x41df73
cmp dword [ebp - 0x1424], 8
lea eax, [ebp - 0x1438]
push str.lds_start
cmovae eax, dword [ebp - 0x1438]
push eax
call fcn.005f44d0
add esp, 8
test eax, eax
je 0x41df73
cmp dword [ebp - 0x1424], 8
lea eax, [ebp - 0x1438]
push str.rmenu_store
cmovae eax, dword [ebp - 0x1438]
push eax
call fcn.005f44d0
add esp, 8
test eax, eax
jne 0x41e0dc
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.00417880
lea eax, [ebp - 0x1450]
push eax
lea eax, [ebp - 0x1468]
push eax
lea ecx, [ebp - 0x1498]
call fcn.0046b100
lea ecx, [ebp - 0x1468]
call fcn.0040eec0
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 0x41e0d1
cmp dword [ebp - 0x1424], 8
lea ecx, [ebp - 0x1438]
push str.tray
cmovae ecx, dword [ebp - 0x1438]
push ecx
call fcn.005f44d0
add esp, 8
test eax, eax
je 0x41e05b
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.005f44d0
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 0x41e0d1
push 2
push 0x16
push 2
lea ecx, [ebp - 0x1464]
call fcn.004687a0
lea eax, [ebp - 0x1450]
push eax
lea ecx, [ebp - 0x1464]
call fcn.00468700
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.004688a0
lea ecx, [ebp - 0x1450]
call fcn.0040eec0
lea ecx, [ebp - 0x1438]
call fcn.0040eec0
lea ecx, [ebp - 0x1498]
call fcn.0046aa80
jmp 0x41eb61
cmp dword [0x68d04c], 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 0x41e1d1
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 0x41e1c1
push str.RtlGetNtVersionNumbers
push esi
call edi
test eax, eax
je 0x41e190
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 0x41e1c1
cmp dword [ebp - 0x1db8], 6
jne 0x41e1c1
mov eax, dword [0x69c398]
mov ecx, 1
cmp dword [ebp - 0x1db4], ecx
cmove eax, ecx
mov dword [0x69c398], eax
mov esi, dword [ebp - 0x1db0]
mov dword [0x68d04c], 0
cmp dword [0x69c398], 0
je 0x41e1e2
push 0
call dword [sym.imp.KERNEL32.dll_SetProcessDEPPolicy]
lea ecx, [ebp - 0x1dc1]
call fcn.0041ccf0
push 0
push 0
push str.jdeskmain
call fcn.0041b8e0
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, 0x69c344
call fcn.0041b7c0
push 0x208
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.005e3240
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 0x62f1a8
push 0xa00000
push 0
push 1
lea eax, [ebp - 0x420]
push eax
call fcn.0047cf70
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 0x41e2f2
lea eax, [ebp - 0x420]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
push str.JDeskTray.exe
call fcn.00457df0
add esp, 4
test al, al
mov eax, dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov dword [ebp - 0x1de0], eax
jne 0x41e461
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.005e3240
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 0x41e461
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.005e3240
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x1420]
push str.__s____fromtray
push eax
call fcn.0041a8d0
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 0x41e461
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.00487bf0
lea eax, [ebp - 0x1530]
push eax
call fcn.00483430
add esp, 8
lea ecx, [ebp - 0x1530]
push str.skin
call fcn.0047fd00
lea ecx, [ebp - 0x1530]
call fcn.0043ec80
push eax
call fcn.00487e70
push 1
push str.desktop.uiz
call fcn.00487f40
push 1
call fcn.00487ec0
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.005e3240
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 0x41e533
lea eax, [ebp - 0x218]
push eax
call dword [ebp - 0x1dcc]
mov esi, eax
test esi, esi
je 0x41e533
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 0x41e56a
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 0x41e57c
push 2
call eax
test eax, eax
jns 0x41e588
mov eax, dword [ebp - 0x1dac]
test eax, eax
je 0x41e588
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 [0x69c380]
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 [0x69c378]
push 4
mov dword [ebp - 0x1dbc], eax
mov ecx, dword [esi + 8]
inc ecx
push ecx
push dword [esi]
call fcn.005e9c3b
add esp, 0xc
test eax, eax
je 0x41e64b
mov dword [esi], eax
mov eax, dword [esi + 8]
push 4
inc eax
push eax
push dword [esi + 4]
call fcn.005e9c3b
add esp, 0xc
test eax, eax
je 0x41e64b
mov ecx, dword [esi + 8]
mov dword [esi + 4], eax
lea edx, [ecx*4]
mov ecx, dword [esi]
add ecx, edx
je 0x41e63e
mov eax, dword [ebp - 0x1dbc]
mov dword [ecx], eax
mov eax, dword [esi + 4]
add eax, edx
je 0x41e648
mov dword [eax], 0x68d054
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 [0x68d050], 0
je 0x41e718
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 0x41e70e
push str.RtlGetNtVersionNumbers
push esi
call edi
test eax, eax
je 0x41e6de
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 0x41e70e
cmp dword [ebp - 0x1dc0], 6
jne 0x41e702
cmp dword [ebp - 0x1dbc], 1
jae 0x41e704
jmp 0x41e70e
jbe 0x41e70e
mov dword [0x69c39c], 1
mov dword [0x68d050], 0
cmp dword [0x69c39c], 0
je 0x41e741
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.00457d90
mov esi, dword [0x6995d4]
mov dword [ebp - 0x1dbc], eax
test esi, esi
jne 0x41e7b0
push 0x68d004
call dword [ebp - 0x1db8]
cmp dword [0x6995d4], esi
jne 0x41e79f
push 0x1c
call fcn.004f9a77
add esp, 4
test eax, eax
je 0x41e78d
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 0x41e78f
xor eax, eax
xor edx, edx
lea ecx, [ebp - 0x1dc0]
lock or dword [ecx], edx
mov dword [0x6995d4], eax
push 0x68d004
call dword [ebp - 0x1dac]
mov esi, dword [0x6995d4]
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.005e3240
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 0x41e86c
cmp dword [esi], 0
jne 0x41e86c
lea eax, [ebp - 0x218]
push eax
call dword [ebp - 0x1dcc]
mov dword [esi], eax
test eax, eax
je 0x41e86c
push 0x63025c
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 0x41e86c
call eax
mov dword [esi + 0xc], eax
mov esi, dword [ebp - 0x1dbc]
lea ecx, [ebp - 0x1da4]
push esi
call fcn.0042abd0
push 0
sub esp, 0x10
lea ecx, [ebp - 0x1da4]
mov eax, esp
xorps xmm0, xmm0
push 0x80
push SysReAllocStringLen
push 0x630618
push esi
movups xmmword [eax], xmm0
call fcn.00488ba0
lea ecx, [ebp - 0x1da4]
call fcn.00432190
mov edi, dword [sym.imp.USER32.dll_PeekMessageW]
mov edx, 1
mov dword [ebp - 0x1da8], edx
xor esi, esi
test edx, edx
je 0x41e8f6
push 0
push 0
push 0
push 0
push 0x68d070
call edi
test eax, eax
jne 0x41e8f6
mov eax, dword [0x68d054]
mov ecx, 0x68d054
push esi
mov eax, dword [eax + 4]
call eax
inc esi
test eax, eax
jne 0x41e8c8
mov dword [ebp - 0x1da8], eax
push 0
push 0
push 0
push 0x68d070
call dword [sym.imp.USER32.dll_GetMessageW]
mov edx, dword [ebp - 0x1da8]
cmp eax, 0xffffffff
je 0x41e8c4
test eax, eax
je 0x41e995
mov eax, dword [0x68d054]
mov ecx, 0x68d054
push 0x68d070
mov eax, dword [eax]
call eax
test eax, eax
jne 0x41e943
push 0x68d070
call dword [sym.imp.USER32.dll_TranslateMessage]
push 0x68d070
call dword [sym.imp.USER32.dll_DispatchMessageW]
mov eax, dword [0x68d074]
cmp eax, 0x118
ja 0x41e95d
je 0x41e97f
cmp eax, 0xf
je 0x41e97f
cmp eax, 0xa0
jmp 0x41e962
cmp eax, 0x200
je 0x41e97f
mov ecx, 1
xor eax, eax
test ecx, ecx
mov edx, ecx
mov dword [ebp - 0x1da8], edx
cmove eax, esi
mov esi, eax
jmp 0x41e8c4
mov edx, dword [ebp - 0x1da8]
xor ecx, ecx
xor eax, eax
test ecx, ecx
cmove eax, esi
mov esi, eax
jmp 0x41e8c4
lea ecx, [ebp - 0x1da4]
call fcn.00438e00
cmp dword [0x6995d4], 0
je 0x41ea20
push 0x68d004
call dword [ebp - 0x1db8]
mov esi, dword [0x6995d4]
test esi, esi
je 0x41ea15
mov eax, dword [esi + 8]
mov dword [ebp - 4], 0
test eax, eax
je 0x41e9d1
push dword [esi + 0xc]
call eax
mov eax, dword [esi]
test eax, eax
je 0x41e9f9
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.004f9a35
add esp, 8
mov dword [0x6995d4], 0
push 0x68d004
call dword [ebp - 0x1dac]
mov ecx, 0x69c344
call fcn.0041cbc0
mov edi, dword [0x69c380]
add edi, 0x10
push edi
call dword [ebp - 0x1db8]
mov esi, dword [0x69c37c]
test esi, esi
je 0x41ea8c
cmp dword [esi + 4], 0
jle 0x41ea5a
mov eax, dword [esi]
push dword [eax]
call dword [sym.imp.USER32.dll_DestroyWindow]
mov esi, dword [0x69c37c]
test esi, esi
je 0x41ea8c
mov eax, dword [esi]
test eax, eax
je 0x41ea73
push eax
call fcn.005e9c13
add esp, 4
mov dword [esi], 0
push 0xc
push esi
mov dword [esi + 4], 0
mov dword [esi + 8], 0
call fcn.004f9a35
add esp, 8
push edi
mov dword [0x69c37c], 0
call dword [ebp - 0x1dac]
mov esi, dword [0x69c378]
test esi, esi
je 0x41eae5
mov eax, dword [esi]
test eax, eax
je 0x41eabc
push eax
call fcn.005e9c13
add esp, 4
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x41ead3
push eax
call fcn.005e9c13
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
mov dword [esi + 8], 0
call fcn.004f9a35
add esp, 8
mov esi, dword [0x69c370]
test esi, esi
je 0x41eb17
cmp dword [esi], 0
je 0x41eb17
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x41eb01
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 0x41eaf4
mov esi, dword [0x68d02c]
mov ecx, dword [0x68d030]
cmp esi, ecx
jae 0x41eb41
mov eax, dword [esi]
test eax, eax
je 0x41eb3a
mov eax, dword [eax + 0x1c]
push 0
call eax
mov ecx, dword [0x68d030]
add esi, 4
cmp esi, ecx
jb 0x41eb27
mov ecx, 0x69c344
call fcn.0041cf30
lea ecx, [ebp - 0x1da4]
call fcn.0042b7d0
lea ecx, [ebp - 0x1530]
call fcn.004086c0
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.004f9a43
mov esp, ebp
pop ebp
ret 0x10