Function at 0x402d50
Capabilities:
Check mutex on windows
Create process on windows
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa54
mov eax, dword [0x55c168]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 8]
push str.ClientAgentSetup
push 1
push 0
mov dword [ebp - 0xa14], edi
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x403a08
lea eax, [ebp - 0xa10]
push 0x26
push eax
mov dword [0x55d660], edi
call fcn.00402730
add esp, 8
push eax
mov ecx, 0x55d664
call fcn.00402020
mov eax, dword [ebp - 0xa10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402dd6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 1
push 0x519008
mov ecx, 0x55d664
call fcn.00401ef0
mov ecx, dword [0x55d664]
push ecx
call fcn.0050b516
add esp, 4
push 0xd
push str.Common_Files_
mov ecx, 0x55d664
call fcn.00401ef0
mov edx, dword [0x55d664]
push edx
call fcn.0050b516
add esp, 4
push 7
push str.System_
mov ecx, 0x55d664
call fcn.00401ef0
mov eax, dword [0x55d664]
push eax
call fcn.0050b516
add esp, 4
push 0xa
push str.ClientWlg_
mov ecx, 0x55d664
call fcn.00401ef0
mov ecx, dword [0x55d664]
push ecx
call fcn.0050b516
call fcn.00401170
push str.SSystem
call fcn.00401100
add esp, 4
mov ecx, esp
mov dword [ebp - 0xa10], esp
push str.SSystem
call fcn.00402670
call fcn.00401900
push str.KeepProg
call fcn.00401100
add esp, 4
mov ecx, esp
mov dword [ebp - 0xa10], esp
push str.dsrc.exe_intnet.exe_seagent.exe_ssystem.exe_KeepProg.exe_LanAgent.exe_SysWlg.exe_WlgPj.exe_WlgSrc.exe_winipcfg.exe_arptable.exe_sentrybar.exe_shellnotify8.exe
call fcn.00402670
call fcn.00402800
push str.WlgPj.exe
lea edx, [ebp - 0xa10]
push 0x55d664
push edx
call fcn.00402480
mov eax, dword [eax]
mov ebx, dword [sym.imp.KERNEL32.dll_DeleteFileA]
add esp, 0x10
push eax
call ebx
mov eax, dword [ebp - 0xa10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402ee5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.WlgSrc.exe
lea ecx, [ebp - 0xa10]
push 0x55d664
push ecx
call fcn.00402480
mov edx, dword [eax]
add esp, 0xc
push edx
call ebx
mov eax, dword [ebp - 0xa10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402f25
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push esi
lea ecx, [ebp - 0xa24]
call fcn.00402670
call fcn.004060f4
test eax, eax
jne 0x402f44
push 0x80004005
call fcn.004012e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
push 0x104
lea ecx, [ebp - 0x108]
add eax, 0x10
push 0
push ecx
mov dword [ebp - 0xa10], eax
call fcn.004f3100
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
lea edx, [ebp - 0xa10]
push 0x518f10
push edx
call fcn.004020d0
mov eax, dword [0x55d664]
lea edx, [ebp - 0x108]
add esp, 0xc
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x402f94
lea eax, [ebp - 0x108]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x402fa5
mov ecx, dword [str.lanagent.exe]
mov edx, dword [0x518f04]
mov dword [eax], ecx
mov ecx, dword [0x518f08]
mov dword [eax + 4], edx
mov dl, byte [0x518f0c]
mov dword [eax + 8], ecx
mov byte [eax + 0xc], dl
lea eax, [ebp - 0x108]
push eax
call ebx
mov eax, dword [0x55d664]
lea edx, [ebp - 0x108]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x402fe6
xor eax, eax
jmp 0x403000
mov cl, byte [ebp + eax - 0x108]
mov byte [ebp + eax - 0x20c], cl
inc eax
test cl, cl
jne 0x403000
mov eax, dword [ebp - 0xa10]
mov edx, eax
jmp 0x403020
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403020
lea edi, [ebp - 0x20c]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x403030
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea eax, [ebp - 0x108]
rep movsb byte es:[edi], byte [esi]
dec eax
nop
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x403050
mov ecx, dword [str.GetWordNT.dll]
mov edx, dword [0x518ef4]
mov dword [eax], ecx
mov ecx, dword [0x518ef8]
mov dword [eax + 4], edx
mov dx, word [0x518efc]
mov dword [eax + 8], ecx
mov word [eax + 0xc], dx
lea eax, [ebp - 0x108]
push eax
call ebx
lea ecx, [ebp - 0x20c]
push ecx
lea edx, [ebp - 0x108]
push edx
call fcn.004f3e8c
mov eax, dword [0x55d664]
lea edx, [ebp - 0x108]
add esp, 8
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4030b0
lea edi, [ebp - 0x20c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x4030c1
mov eax, dword [0x518eec]
mov dword [edi], eax
lea eax, [ebp - 0x108]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4030d7
mov ecx, dword [str.iCall.dll]
mov edx, dword [0x518ee4]
mov dword [eax], ecx
mov cx, word [0x518ee8]
mov dword [eax + 4], edx
lea edx, [ebp - 0x108]
push edx
mov word [eax + 8], cx
call ebx
lea eax, [ebp - 0x20c]
push eax
lea ecx, [ebp - 0x108]
push ecx
call fcn.004f3e8c
mov eax, dword [0x55d664]
lea edx, [ebp - 0x108]
add esp, 8
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x403127
lea eax, [ebp - 0x108]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x403138
mov edx, dword [str.keepprog.exe]
mov ecx, dword [0x518ed4]
mov dword [eax], edx
mov edx, dword [0x518ed8]
mov dword [eax + 4], ecx
mov cl, byte [0x518edc]
mov dword [eax + 8], edx
lea edx, [ebp - 0x108]
push edx
mov byte [eax + 0xc], cl
call ebx
mov eax, dword [ebp - 0xa10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40318e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x104
lea ecx, [ebp - 0x108]
push 0
push ecx
call fcn.004f3100
mov esi, dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
add esp, 0xc
push 0x104
lea edx, [ebp - 0x108]
push edx
call esi
lea eax, [ebp - 0x108]
dec eax
nop
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4031c0
mov ecx, dword [str.winbedrv.dll]
mov edx, dword [0x518ec4]
mov dword [eax], ecx
mov ecx, dword [0x518ec8]
mov dword [eax + 4], edx
mov dx, word [0x518ecc]
mov dword [eax + 8], ecx
mov word [eax + 0xc], dx
lea eax, [ebp - 0x108]
push eax
call ebx
push 0x104
lea ecx, [ebp - 0x108]
push 0
push ecx
call fcn.004f3100
add esp, 0xc
push 0x104
lea edx, [ebp - 0x108]
push edx
call esi
lea eax, [ebp - 0x108]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x403221
mov ecx, dword [str.SSystem.exe]
mov edx, dword [0x518eb4]
mov dword [eax], ecx
mov ecx, dword [0x518eb8]
mov dword [eax + 4], edx
mov dl, byte [0x518ebc]
mov dword [eax + 8], ecx
mov byte [eax + 0xc], dl
lea eax, [ebp - 0x108]
push eax
call ebx
push 0x104
lea ecx, [ebp - 0x108]
push ecx
call esi
lea eax, [ebp - 0x108]
dec eax
lea ebx, [ebx]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x403270
mov edx, dword [str._seagent.exe]
mov ecx, dword [0x518ea4]
mov dword [eax], edx
mov edx, dword [0x518ea8]
mov dword [eax + 4], ecx
mov cl, byte [0x518eac]
mov dword [eax + 8], edx
lea edx, [ebp - 0x108]
push edx
mov byte [eax + 0xc], cl
call ebx
call fcn.00401210
lea ecx, [ebp - 0xa54]
call fcn.004075dd
push str.SysWlg.exe
lea eax, [ebp - 0xa10]
push 0x55d664
push eax
call fcn.00402480
mov eax, dword [eax]
add esp, 0xc
push 0
push eax
lea ecx, [ebp - 0xa54]
call fcn.00407681
mov esi, eax
mov eax, dword [ebp - 0xa10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x403301
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test esi, esi
je 0x403446
lea ecx, [ebp - 0xa54]
call fcn.0040716a
lea ecx, [ebp - 0xa38]
call fcn.00406a5d
push str.updatemainprogram.tmp
lea ecx, [ebp - 0xa10]
push 0x55d664
push ecx
call fcn.00402480
mov eax, dword [eax]
add esp, 0xc
push 0
push 0x1041
push eax
lea ecx, [ebp - 0xa38]
call fcn.00406f72
mov esi, eax
mov eax, dword [ebp - 0xa10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x403371
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test esi, esi
je 0x403380
lea ecx, [ebp - 0xa38]
call fcn.004069f8
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
push 0x1f4
call ebx
xor edi, edi
nop
push str.updatemainprogram.tmp
lea ecx, [ebp - 0xa10]
push 0x55d664
push ecx
call fcn.00402480
mov eax, dword [eax]
add esp, 0xc
push 0
push eax
lea ecx, [ebp - 0xa54]
call fcn.00407681
mov esi, eax
mov eax, dword [ebp - 0xa10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4033dd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test esi, esi
je 0x4033f0
inc edi
cmp edi, 0x19
jg 0x4033f0
push 0xc8
call ebx
jmp 0x403390
push str.updatemainprogram.tmp
lea ecx, [ebp - 0xa10]
push 0x55d664
push ecx
call fcn.00402480
mov edx, dword [eax]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, dword [ebp - 0xa10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x403434
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x1f4
call ebx
lea ecx, [ebp - 0xa38]
call fcn.00406bcb
push ecx
mov ecx, esp
mov dword [ebp - 0xa10], esp
push str.WlgPj.exe_WlgSrc.exe
call fcn.00402670
call fcn.00402800
add esp, 4
call fcn.00402c10
call fcn.004060f4
test eax, eax
jne 0x403479
push 0x80004005
call fcn.004012e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
mov ecx, dword [ebp - 0xa14]
push 0xc9
add eax, 0x10
push ecx
lea ecx, [ebp - 0xa18]
mov dword [ebp - 0xa18], eax
call fcn.004019e0
mov esi, dword [ebp - 0xa18]
cmp dword [esi - 0xc], 0
jge 0x4034b3
or edi, 0xffffffff
jmp 0x4034ce
push str._____
push esi
call fcn.004f343d
add esp, 8
test eax, eax
jne 0x4034ca
or edi, 0xffffffff
jmp 0x4034ce
sub eax, esi
mov edi, eax
cmp dword [esi - 0xc], 0
jge 0x4034d9
or eax, 0xffffffff
jmp 0x4034f2
push 0x518e54
push esi
call fcn.004f343d
add esp, 8
test eax, eax
jne 0x4034f0
or eax, 0xffffffff
jmp 0x4034f2
sub eax, esi
sub eax, edi
sub eax, 5
push eax
add edi, 5
push edi
lea edx, [ebp - 0xa10]
push edx
lea ecx, [ebp - 0xa18]
call fcn.00401dc0
push eax
lea ecx, [ebp - 0xa18]
call fcn.00402020
mov eax, dword [ebp - 0xa10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40353c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0xa18]
call fcn.00401ca0
lea ecx, [ebp - 0xa18]
call fcn.00402400
mov esi, dword [ebp - 0xa18]
push 0x518d4e
push esi
call fcn.004f3553
mov ebx, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
add esp, 8
test eax, eax
je 0x403613
push esi
call fcn.004f3e81
add esp, 4
push eax
call dword [sym.imp.WS2_32.dll_ntohl]
push eax
lea ecx, [ebp - 0xa10]
push ecx
call fcn.004020f0
add esp, 8
push eax
lea ecx, [ebp - 0xa18]
call fcn.00402020
mov eax, dword [ebp - 0xa10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4035c2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.server.ini
lea ecx, [ebp - 0xa10]
push 0x55d664
push ecx
call fcn.00402480
mov edx, dword [eax]
mov eax, dword [ebp - 0xa18]
add esp, 0xc
push edx
push eax
push 0x518e44
push str.SERVER
call ebx
mov eax, dword [ebp - 0xa10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x403613
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.004060f4
test eax, eax
jne 0x403626
push 0x80004005
call fcn.004012e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
mov ecx, dword [ebp - 0xa14]
push 0xca
add eax, 0x10
push ecx
lea ecx, [ebp - 0xa10]
mov dword [ebp - 0xa10], eax
call fcn.004019e0
mov esi, dword [ebp - 0xa10]
cmp dword [esi - 0xc], 0
jge 0x403660
or edi, 0xffffffff
jmp 0x40367b
push 0x518e34
push esi
call fcn.004f343d
add esp, 8
test eax, eax
jne 0x403677
or edi, 0xffffffff
jmp 0x40367b
sub eax, esi
mov edi, eax
cmp dword [esi - 0xc], 0
jge 0x403686
or eax, 0xffffffff
jmp 0x40369f
push 0x518e2c
push esi
call fcn.004f343d
add esp, 8
test eax, eax
jne 0x40369d
or eax, 0xffffffff
jmp 0x40369f
sub eax, esi
sub eax, edi
sub eax, 5
push eax
add edi, 5
push edi
lea edx, [ebp - 0xa14]
push edx
lea ecx, [ebp - 0xa10]
call fcn.00401dc0
push eax
lea ecx, [ebp - 0xa10]
call fcn.00402020
mov eax, dword [ebp - 0xa14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4036e9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0xa10]
call fcn.00401ca0
lea ecx, [ebp - 0xa10]
call fcn.00402400
mov edi, dword [ebp - 0xa10]
push 0x518d4e
push edi
call fcn.004f3553
add esp, 8
test eax, eax
je 0x403762
push str.server.ini
lea ecx, [ebp - 0xa14]
push 0x55d664
push ecx
call fcn.00402480
mov edx, dword [eax]
add esp, 0xc
push edx
push edi
push str.PORT
push str.SERVER
call ebx
mov eax, dword [ebp - 0xa14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x403762
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.SysWlg.exe
lea ecx, [ebp - 0xa14]
push 0x55d664
push ecx
call fcn.00402480
mov edx, dword [eax]
add esp, 0xc
push 1
push edx
call dword [sym.imp.KERNEL32.dll_WinExec]
mov eax, dword [ebp - 0xa14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4037a8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
lea ecx, [ebp - 0xa1c]
call fcn.00404670
lea ecx, [ebp - 0xa1c]
call fcn.00404680
push str.SysWlg.exe
lea ecx, [ebp - 0xa20]
push 0x55d664
push ecx
call fcn.00402480
push 0x800
lea edx, [ebp - 0xa0c]
push 0
push edx
call fcn.004f3100
mov esi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
add esp, 0x18
push 0x400
lea eax, [ebp - 0xa0c]
push eax
mov eax, dword [ebp - 0xa20]
mov ecx, dword [eax - 0xc]
push ecx
push eax
push 0
push 0
call esi
push str.SentrySys1
lea edx, [ebp - 0xa0c]
push edx
lea ecx, [ebp - 0xa1c]
call fcn.00404940
push str.wlgsrc.exe
lea eax, [ebp - 0xa14]
push 0x55d664
push eax
call fcn.00402480
add esp, 0xc
push eax
lea ecx, [ebp - 0xa20]
call fcn.00402020
mov eax, dword [ebp - 0xa14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x403873
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x800
lea ecx, [ebp - 0xa0c]
push 0
push ecx
call fcn.004f3100
mov eax, dword [ebp - 0xa20]
mov ecx, dword [eax - 0xc]
add esp, 0xc
push 0x400
lea edx, [ebp - 0xa0c]
push edx
push ecx
push eax
push 0
push 0
call esi
push str.SentrySys2
lea edx, [ebp - 0xa0c]
push edx
lea ecx, [ebp - 0xa1c]
call fcn.00404940
push str.wlgpj.exe
lea eax, [ebp - 0xa14]
push 0x55d664
push eax
call fcn.00402480
add esp, 0xc
push eax
lea ecx, [ebp - 0xa20]
call fcn.00402020
mov eax, dword [ebp - 0xa14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x403904
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x800
lea ecx, [ebp - 0xa0c]
push 0
push ecx
call fcn.004f3100
mov eax, dword [ebp - 0xa20]
mov ecx, dword [eax - 0xc]
add esp, 0xc
push 0x400
lea edx, [ebp - 0xa0c]
push edx
push ecx
push eax
push 0
push 0
call esi
push str.SentrySys3
lea edx, [ebp - 0xa0c]
push edx
lea ecx, [ebp - 0xa1c]
call fcn.00404940
push str.SentrySys_Port
push 6
push 0x2382
lea ecx, [ebp - 0xa1c]
call fcn.00404cb0
lea ecx, [ebp - 0xa1c]
call fcn.004047b0
mov eax, dword [ebp - 0xa20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x403992
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0xa1c]
call fcn.00404ec0
lea eax, [edi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4039b9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0xa18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4039db
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0xa54]
call fcn.0040760c
mov eax, dword [ebp - 0xa24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x403a08
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.004f30e9
mov esp, ebp
pop ebp
ret 0x10