Function at 0x42bc20
Capabilities:
Check if file exists
Create process on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5834a6
mov eax, dword fs:[0]
push eax
sub esp, 0xa8
push ebx
push esi
push edi
mov eax, dword [0x5e4a44]
xor eax, esp
push eax
lea eax, [esp + 0xb8]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
call fcn.00454925
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42bc6f
push 0x80004005
call fcn.004010d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
mov dword [esp + 0xc0], 0
mov eax, dword [0x5f5208]
add eax, 0xfffffff0
push eax
call fcn.00403050
add eax, 0x10
add esp, 4
mov dword [esp + 0x30], eax
mov byte [esp + 0xc0], 1
mov esi, dword [ebx + 0x2aec]
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x20]
push 0
push 9
push 0x110a
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov edi, eax
test edi, edi
je 0x42bce8
mov ecx, dword [esi + 4]
push edi
call fcn.0045361a
test eax, eax
jne 0x42bce8
mov ecx, dword [esi + 4]
push edi
call fcn.004535d0
mov edi, eax
test edi, edi
jne 0x42bd67
lea edx, [esp + 0x20]
push 0x5bac98
push edx
call fcn.00403110
add esp, 8
mov byte [esp + 0xc0], 0
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42bd22
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0xc0], 0xffffffff
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42bd4d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
mov ecx, dword [esp + 0xb8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
call fcn.00454925
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42bd81
push 0x80004005
call fcn.004010d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x3c], eax
mov byte [esp + 0xc0], 2
call fcn.00454925
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42bdb3
push 0x80004005
call fcn.004010d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x48], eax
lea ecx, [esp + 0x48]
push ecx
mov byte [esp + 0xc4], 3
movzx eax, word [edi + 0x10]
lea edx, [esp + 0x40]
push edx
push eax
lea edx, [edi + 0xc]
lea ecx, [esp + 0x20]
call fcn.00419600
add esp, 0xc
test eax, eax
je 0x42be87
mov esi, dword [esp + 0x48]
push esi
push eax
push str.GetAddress_err:__d___s
call fcn.0041bdc0
add esp, 0xc
push 0x5baccc
lea ecx, [esp + 0x30]
call fcn.004024e0
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42be32
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esi - 0x10]
mov byte [esp + 0xc0], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42be56
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 1
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42bcfa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x42bcfa
call fcn.00454925
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42bea1
push 0x80004005
call fcn.004010d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x50], eax
mov byte [esp + 0xc0], 4
movzx ecx, word [esp + 0x14]
push ecx
lea edx, [esp + 0x54]
push 0x5b025c
push edx
call fcn.00403110
add esp, 0xc
call fcn.00454925
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42beeb
push 0x80004005
call fcn.004010d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
mov byte [esp + 0xc0], 5
mov ecx, dword [ebx + 0x20]
push ecx
lea edx, [esp + 0x18]
push 0x5b025c
push edx
call fcn.00403110
add esp, 0xc
push 6
push str._t8888_t
lea ecx, [esp + 0x1c]
call fcn.00402e00
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x1c]
call fcn.00402e00
push 9
lea ecx, [esp + 0x18]
call fcn.00402c80
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x1c]
call fcn.00402e00
push 9
lea ecx, [esp + 0x18]
call fcn.00402c80
lea eax, [edi + 8]
push eax
lea ecx, [esp + 0x30]
push ecx
call fcn.00419f40
add esp, 8
mov byte [esp + 0xc0], 6
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x1c]
call fcn.00402e00
mov byte [esp + 0xc0], 5
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42bfb4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [edi + 0x28]
sub eax, 0x10
push eax
call fcn.00403050
add eax, 0x10
add esp, 4
mov dword [esp + 0x2c], eax
mov byte [esp + 0xc0], 7
mov eax, dword [edi + 0x20]
sub eax, 0x10
push eax
call fcn.00403050
add eax, 0x10
add esp, 4
mov dword [esp + 0x54], eax
mov byte [esp + 0xc0], 8
call fcn.00454925
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42c00a
push 0x80004005
call fcn.004010d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x34], eax
mov byte [esp + 0xc0], 9
call fcn.00454925
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42c03c
push 0x80004005
call fcn.004010d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x44], eax
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x44]
push edx
mov byte [esp + 0xc8], 0xa
call fcn.00419f40
add esp, 8
mov esi, eax
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x38]
push ecx
mov byte [esp + 0xc8], 0xb
call fcn.00412c40
mov ecx, eax
mov eax, esi
call fcn.00413030
mov byte [esp + 0xc0], 0xa
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42c0b0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [edi + 0x2c]
sub eax, 0x10
push eax
call fcn.00403050
add eax, 0x10
add esp, 4
mov dword [esp + 0x40], eax
mov byte [esp + 0xc0], 0xc
mov eax, dword [edi + 0x24]
sub eax, 0x10
push eax
call fcn.00403050
add eax, 0x10
add esp, 4
mov dword [esp + 0x58], eax
mov byte [esp + 0xc0], 0xd
call fcn.00454925
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42c106
push 0x80004005
call fcn.004010d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x28], eax
mov byte [esp + 0xc0], 0xe
call fcn.00454925
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42c138
push 0x80004005
call fcn.004010d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x4c], eax
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x3c]
push edx
mov byte [esp + 0xc8], 0xf
call fcn.00419f40
add esp, 8
mov esi, eax
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x2c]
push ecx
mov byte [esp + 0xc8], 0x10
call fcn.00412c40
mov ecx, eax
mov eax, esi
call fcn.00413100
mov byte [esp + 0xc0], 0xf
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42c1ac
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [0x5f5758], 0
mov dword [esp + 0x1c], 0x400
mov dword [esp + 0x18], 0x300
je 0x42c1f5
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x144]
push 0
push 0
push 0x147
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov esi, dword [0x5f5758]
lea ecx, [esp + 0x18]
push ecx
lea ebx, [esp + 0x20]
call fcn.0041c570
mov ebx, dword [ebp + 8]
call fcn.00454925
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42c20f
push 0x80004005
call fcn.004010d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x38], eax
mov byte [esp + 0xc0], 0x11
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x2c]
mov eax, dword [ebx + 0x950]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x24]
push eax
push ecx
push edx
lea eax, [esp + 0x4c]
push str._d__d__d__s__s
push eax
call fcn.00403110
add esp, 0x1c
push 9
lea ecx, [esp + 0x18]
call fcn.00402c80
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x1c]
call fcn.00402e00
push 9
lea ecx, [esp + 0x18]
call fcn.00402c80
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x1c]
call fcn.00402e00
push 9
lea ecx, [esp + 0x18]
call fcn.00402c80
mov esi, dword [esp + 0x28]
mov eax, dword [esi - 0xc]
push eax
push esi
lea ecx, [esp + 0x1c]
call fcn.00402e00
push 9
lea ecx, [esp + 0x18]
call fcn.00402c80
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x1c]
call fcn.00402e00
push 9
lea ecx, [esp + 0x18]
call fcn.00402c80
mov ebx, dword [esp + 0x38]
mov eax, dword [ebx - 0xc]
push eax
push ebx
lea ecx, [esp + 0x1c]
call fcn.00402e00
push 9
lea ecx, [esp + 0x18]
call fcn.00402c80
mov eax, dword [0x5f5724]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x1c]
call fcn.00402e00
push 9
lea ecx, [esp + 0x18]
call fcn.00402c80
mov eax, dword [0x5f5728]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x1c]
call fcn.00402e00
push 0x44
lea ecx, [esp + 0x70]
push 0
push ecx
call fcn.00557650
xor eax, eax
add edi, 0x30
mov dword [esp + 0x78], 0x44
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov edx, dword [edi]
add esp, 0xc
cmp dword [edx - 0xc], eax
jle 0x42c41f
call fcn.00454925
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x42c374
push 0x80004005
call fcn.004010d0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x1c]
push edi
push ecx
mov byte [esp + 0xc8], 0x12
call fcn.00419f40
add esp, 8
mov edi, eax
lea edx, [esp + 0x18]
push edx
mov byte [esp + 0xc4], 0x13
call fcn.00412c40
mov ecx, eax
mov eax, edi
call fcn.004131e0
mov byte [esp + 0xc0], 0x12
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42c3df
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x18]
cmp dword [edi - 0xc], 0
jle 0x42c3fb
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x2c]
call fcn.00402bc0
mov esi, dword [esp + 0x28]
lea eax, [edi - 0x10]
mov byte [esp + 0xc0], 0x11
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42c41f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x20]
push 0x5bad00
push edx
call fcn.00413610
mov eax, dword [eax]
add esp, 0xc
push eax
call fcn.005521bf
mov edi, eax
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42c463
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x34]
call fcn.00402bc0
push str.CqClient.dat
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x2c]
push eax
call fcn.00413530
add esp, 0xc
mov byte [esp + 0xc0], 0x14
cmp dword [esi - 0xc], 0
jle 0x42c4a5
mov ecx, dword [esp + 0x24]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x42c504
lea edx, [esp + 0x34]
push edx
lea ecx, [esp + 0x34]
call fcn.00402bc0
push str.CqClient.dat
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x20]
push ecx
call fcn.00413530
add esp, 0xc
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0xc4], 0x15
call fcn.00402bc0
mov byte [esp + 0xc0], 0x14
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42c504
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x5c]
push ecx
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x70]
push edx
push eax
push 0
push 0
push 0
push 0
push 0
push edi
push ecx
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x42c5fb
mov edx, dword [esp + 0x24]
push edi
push edx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [esp + 0x2c]
push 0x5bad20
push eax
call fcn.00403110
add esp, 0x14
push 0x5bad44
lea ecx, [esp + 0x20]
call fcn.004024e0
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x1c]
push edx
mov byte [esp + 0xc8], 0x16
call fcn.00419f40
add esp, 8
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0xc4], 0x17
call fcn.00402bc0
mov byte [esp + 0xc0], 0x16
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42c5b2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 0x14
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42c5da
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x28]
call fcn.00402e00
mov edi, dword [esp + 0x20]
mov ecx, dword [0x5f5808]
call fcn.00440760
mov byte [esp + 0xc0], 0x11
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42c623
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add ebx, 0xfffffff0
mov byte [esp + 0xc0], 0xf
lea ecx, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42c647
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
mov byte [esp + 0xc0], 0xe
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42c66f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add esi, 0xfffffff0
mov byte [esp + 0xc0], 0xd
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42c693
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov byte [esp + 0xc0], 0xc
mov eax, dword [esp + 0x58]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42c6bb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 0xa
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42c6e3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 9
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42c70b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 8
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42c733
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 7
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42c75b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 5
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42c783
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 4
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42c7ab
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 3
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42c7d3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 2
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42c7fb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 1
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42c823
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 0
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42c84b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0xc0], 0xffffffff
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42c876
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, 1
mov ecx, dword [esp + 0xb8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4