Function at 0x41fb10
Capabilities:
Create directory
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x473014
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x30c
mov eax, dword [0x48aff4]
push ebx
push esi
push edi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x2a8], 0
mov edi, 1
lea ecx, [ebp + 0xc]
mov dword [ebp - 4], edi
call fcn.0041ec20
lea eax, [ebp - 0x30c]
push eax
call fcn.0041e410
push str.QuickPar_
push eax
lea ecx, [ebp - 0x2b0]
push ecx
mov byte [ebp - 4], 2
call fcn.0041ef60
add esp, 0x10
mov eax, dword [ebp - 0x30c]
add eax, 0xfffffff0
mov byte [ebp - 4], 4
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41fb9f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov ebx, dword [ebp - 0x2b0]
mov eax, dword [ebx - 0xc]
test eax, eax
jle 0x42074c
push 0x5c
push ebx
call fcn.00455cc6
add esp, 8
test eax, eax
je 0x42074c
sub eax, ebx
mov esi, eax
cmp esi, 2
jne 0x42074c
cmp dword [ebx - 0xc], edi
jge 0x41fbdf
push 0x80070057
call fcn.00401060
cmp byte [ebx + 1], 0x3a
jne 0x42074c
mov eax, dword [ebx - 0xc]
dec eax
push eax
lea eax, [ebp - 0x2c0]
push eax
lea ecx, [ebp - 0x2b0]
call fcn.0041ec80
mov eax, dword [eax]
lea ecx, [ebp - 0x15c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov edi, eax
mov eax, dword [ebp - 0x2c0]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41fc32
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
cmp edi, 0xffffffff
je 0x41fcb0
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x15c]
test al, 0x10
jne 0x41fda3
mov esi, dword [ebp + 8]
lea eax, [ebp + 0xc]
push eax
mov ecx, esi
call fcn.00403b40
lea eax, [ebx - 0x10]
mov dword [ebp - 0x2a8], 1
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41fc82
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff0
mov byte [ebp - 4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4203d4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, esi
jmp 0x4207a8
mov ecx, dword [ebx - 0xc]
lea eax, [esi + 1]
test eax, eax
jl 0x41fda3
cmp eax, ecx
jge 0x41fda3
add eax, ebx
push 0x5c
push eax
call fcn.00455cc6
add esp, 8
test eax, eax
je 0x41fda3
sub eax, ebx
mov esi, eax
test esi, esi
jle 0x41fda3
push esi
lea eax, [ebp - 0x2b4]
push eax
lea ecx, [ebp - 0x2b0]
call fcn.0041ec80
mov edi, dword [ebp - 0x2b4]
lea ecx, [ebp - 0x29c]
push ecx
push edi
mov byte [ebp - 4], 5
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
je 0x41fd40
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x29c]
test al, 0x10
jne 0x41fd7d
mov esi, dword [ebp + 8]
lea eax, [ebp + 0xc]
push eax
mov ecx, esi
call fcn.00403b40
jmp 0x4203b6
push 0
push edi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x41feb4
mov ecx, dword [ebx - 0xc]
lea eax, [esi + 1]
test eax, eax
jl 0x41fd7a
cmp eax, ecx
jge 0x41fd7a
add eax, ebx
push 0x5c
push eax
call fcn.00455cc6
add esp, 8
test eax, eax
je 0x41fd7a
sub eax, ebx
mov esi, eax
test esi, esi
jg 0x41fd40
jmp 0x41fd7d
or esi, 0xffffffff
lea eax, [edi - 0x10]
mov byte [ebp - 4], 4
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41fd9b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
test esi, esi
jg 0x41fcb0
push str.cache.qpc
lea eax, [ebp - 0x2b0]
push eax
lea ecx, [ebp - 0x2b4]
push ecx
call fcn.0041ef60
add esp, 0xc
xor esi, esi
mov dword [ebp - method.CCommandLineInfo.virtual_0], 0x476ea8
mov dword [ebp - 0x2f8], esi
mov dword [ebp - 0x2f4], 0x11
mov dword [ebp - 0x2f0], esi
mov dword [ebp - 0x2ec], esi
mov dword [ebp - 0x2e8], esi
mov dword [ebp - 0x2e4], 0xa
lea edx, [ebp - 0x2d4]
push edx
mov byte [ebp - 4], 7
mov dword [ebp - 0x2d4], esi
mov dword [ebp - 0x2d0], esi
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov ecx, dword [ebp - 0x2d0]
mov eax, dword [ebp - 0x2d4]
mov dword [ebp - 0x2dc], ecx
lea ecx, [ebp - 0x134]
mov dword [ebp - 0x2e0], eax
mov byte [ebp - 0x2a9], 0
call fcn.0041e4d0
mov edx, dword [ebp - 0x2b4]
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x2d0], esp
push edx
mov byte [ebp - 4], 8
call fcn.00404bf0
lea ecx, [ebp - 0x134]
call fcn.0041f420
cmp eax, esi
je 0x4201b7
push 8
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], 9
call fcn.00402cb0
lea ecx, [ebp - 0x1c]
push 0x48a168
push ecx
call fcn.0040ad90
add esp, 8
test al, al
je 0x41ff1b
push 0x482298
lea edx, [ebp - 0x308]
push edx
mov dword [ebp - 0x308], 1
call fcn.004553ad
mov esi, dword [ebp + 0xc]
add esi, 0xfffffff0
push esi
call fcn.004032c0
mov edi, dword [ebp + 8]
add eax, 0x10
mov dword [edi], eax
mov eax, dword [ebp - 0x2b4]
add eax, 0xfffffff0
add esp, 4
mov dword [ebp - 0x2a8], 1
mov byte [ebp - 4], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41fef9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
add ebx, 0xfffffff0
mov byte [ebp - 4], 1
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42078b
mov ecx, dword [ebx]
push ebx
jmp 0x420786
push 4
lea eax, [ebp - 0x2c0]
push eax
lea ecx, [ebp - 0x134]
call fcn.00402cb0
mov ebx, dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov dword [ebp - 0x2b8], esi
jmp 0x41ff40
mov ecx, dword [ebp - 0x2b8]
cmp ecx, dword [ebp - 0x2c0]
jae 0x420185
call fcn.0046b0c6
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x2a4], eax
mov byte [ebp - 4], 0xa
call fcn.0046b0c6
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x2a0], eax
lea eax, [ebp - 0x2a4]
push eax
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], 0xb
call fcn.0041e440
lea ecx, [ebp - 0x2a0]
push ecx
mov ecx, eax
call fcn.0041e440
push 8
lea edx, [ebp - 0x304]
push edx
mov ecx, eax
call fcn.00402cb0
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x2a4]
push eax
push ecx
call fcn.0045555a
add esp, 8
test eax, eax
je 0x420051
mov edi, dword [ebp - 0x2e0]
mov eax, dword [ebp - 0x2dc]
mov ebx, dword [ebp - 0x304]
mov esi, dword [ebp - 0x300]
xor ecx, ecx
xor edx, edx
or ecx, edi
or eax, edx
xor edi, edi
or edx, ebx
or esi, edi
sub ecx, edx
sbb eax, esi
cmp eax, 0x580
jl 0x420091
jg 0x420012
cmp ecx, 0x28e44000
jbe 0x420091
mov eax, dword [ebp - 0x2a0]
mov ebx, dword [sym.imp.KERNEL32.dll_DeleteFileA]
push eax
call ebx
push str..bak
lea ecx, [ebp - 0x2a0]
push ecx
lea edx, [ebp - 0x2d8]
push edx
call fcn.0041ef60
mov eax, dword [eax]
add esp, 0xc
push eax
call ebx
lea ecx, [ebp - 0x2d8]
call fcn.00401240
jmp 0x420130
mov al, byte [ebp + 0x10]
test al, al
jne 0x420097
mov eax, dword [ebp - 0x2a0]
push eax
call ebx
push str..bak
lea ecx, [ebp - 0x2a0]
push ecx
lea edx, [ebp - 0x2bc]
push edx
call fcn.0041ef60
mov eax, dword [eax]
add esp, 0xc
push eax
call ebx
lea ecx, [ebp - 0x2bc]
call fcn.00401240
jmp 0x420130
mov ebx, dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov ecx, dword [ebp - 0x304]
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov edx, dword [ebp - 0x300]
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x2a0]
mov dword [ebp - 0x2d0], esp
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x2d0], esp
mov esi, esp
push eax
call fcn.004032c0
add eax, 0x10
add esp, 4
lea ecx, [ebp - 0x318]
mov dword [esi], eax
call fcn.0041eba0
mov edi, eax
lea eax, [ebp - 0x2a4]
push eax
lea ecx, [ebp - 0x2fc]
mov byte [ebp - 4], 0xc
call fcn.0041f540
mov esi, eax
push edi
mov ecx, esi
call fcn.00404670
mov ecx, dword [edi + 4]
mov dword [esi + 4], ecx
mov edx, dword [edi + 8]
mov dword [esi + 8], edx
mov eax, dword [ebp - 0x318]
add eax, 0xfffffff0
mov byte [ebp - 4], 0xb
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x420130
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebp - 0x2a0]
add eax, 0xfffffff0
mov byte [ebp - 4], 0xa
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x420154
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebp - 0x2a4]
add eax, 0xfffffff0
mov byte [ebp - 4], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x420178
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
inc dword [ebp - 0x2b8]
xor esi, esi
jmp 0x41ff40
lea ecx, [ebp - 0x134]
call fcn.0041d510
cmp eax, esi
je 0x42019b
mov byte [ebp - 0x2a9], 1
lea ecx, [ebp - 0x134]
mov dword [ebp - 4], 8
call fcn.0041f9f0
mov al, byte [ebp - 0x2a9]
test al, al
jne 0x4201c2
lea ecx, [ebp - 0x2fc]
call fcn.0041f020
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], 7
call fcn.0041e5b0
call fcn.0046b0c6
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
xor esi, esi
add eax, 0x10
mov dword [ebp - 0x2cc], eax
mov dword [ebp - 0x2c8], esi
mov dword [ebp - 0x2c4], esi
mov al, byte [ebp + 0x10]
test al, al
mov byte [ebp - 4], 0xe
je 0x420407
lea eax, [ebp - 0x2cc]
push eax
lea ecx, [ebp + 0xc]
push ecx
lea ecx, [ebp - 0x2fc]
call fcn.0041f0e0
test eax, eax
jne 0x420407
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff0
push eax
call fcn.004032c0
add eax, 0x10
add esp, 4
mov dword [ebp - 0x2a0], eax
mov bl, 0xf
push 0x5c
lea ecx, [ebp - 0x2a0]
mov byte [ebp - 4], bl
call fcn.0041d580
cmp eax, esi
jl 0x420281
inc eax
push eax
lea edx, [ebp - 0x2bc]
push edx
lea ecx, [ebp - 0x2a0]
call fcn.0041ef30
push eax
lea ecx, [ebp - 0x2a0]
mov byte [ebp - 4], 0x10
call fcn.00404670
lea ecx, [ebp - 0x2bc]
mov byte [ebp - 4], bl
call fcn.00401240
push 0x2e
lea ecx, [ebp - 0x2a0]
call fcn.0041d580
cmp eax, esi
jl 0x4202c3
push eax
lea eax, [ebp - 0x2bc]
push eax
lea ecx, [ebp - 0x2a0]
call fcn.0041ec80
push eax
lea ecx, [ebp - 0x2a0]
mov byte [ebp - 4], 0x11
call fcn.00404670
lea ecx, [ebp - 0x2bc]
mov byte [ebp - 4], bl
call fcn.00401240
call fcn.0046b0c6
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x2a4], eax
mov edi, dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ebx, dword [ebp - 0x2a0]
mov byte [ebp - 4], 0x12
mov esi, 1
lea ecx, [ecx]
mov eax, dword [ebp - 0x2b0]
push esi
push ebx
push eax
lea ecx, [ebp - 0x2a4]
push str._s_s__d_.qp
push ecx
call fcn.00401380
mov eax, dword [ebp - 0x2a4]
add esp, 0x14
lea edx, [ebp - 0x29c]
push edx
push eax
call edi
cmp eax, 0xffffffff
je 0x42033a
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
inc esi
cmp esi, 0x3e7
jbe 0x4202f0
jmp 0x420346
cmp esi, 0x3e7
jbe 0x4203db
mov esi, dword [ebp + 8]
lea ecx, [ebp + 0xc]
push ecx
mov ecx, esi
call fcn.00403b40
mov edi, dword [ebp - 0x2a8]
or edi, 1
lea ecx, [ebp - 0x2a4]
mov dword [ebp - 0x2a8], edi
call fcn.00401240
lea ecx, [ebp - 0x2a0]
call fcn.00401240
mov eax, dword [ebp - 0x2cc]
add eax, 0xfffffff0
mov byte [ebp - 4], 7
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42039d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea ecx, [ebp - 0x2fc]
mov byte [ebp - 4], 6
mov dword [ebp - method.CCommandLineInfo.virtual_0], 0x476ea8
call fcn.0041f020
lea ecx, [ebp - 0x2b4]
call fcn.00401240
lea ecx, [ebp - 0x2b0]
call fcn.00401240
lea ecx, [ebp + 0xc]
call fcn.00401240
mov eax, esi
jmp 0x4207a8
lea eax, [ebp - 0x2a4]
push eax
lea ecx, [ebp - 0x2cc]
call fcn.00404670
lea ecx, [ebp - 0x2a4]
call fcn.00401240
lea ecx, [ebp - 0x2a0]
mov byte [ebp - 4], 0xe
call fcn.00401240
mov al, byte [ebp + 0x10]
test al, al
mov ecx, dword [ebp - 0x2e0]
mov edx, dword [ebp - 0x2dc]
mov dword [ebp - 0x2c8], ecx
mov dword [ebp - 0x2c4], edx
je 0x42045f
lea eax, [ebp + 0xc]
push eax
lea ecx, [ebp - 0x2fc]
call fcn.0041f540
lea ecx, [ebp - 0x2cc]
mov esi, eax
push ecx
mov ecx, esi
call fcn.00404670
mov edx, dword [ebp - 0x2c8]
mov dword [esi + 4], edx
mov eax, dword [ebp - 0x2c4]
mov dword [esi + 8], eax
lea eax, [ebp - 0x2cc]
jmp 0x42047f
push 0
lea ecx, [ebp - 0x2bc]
call fcn.00406fe0
mov ecx, dword [ebp - 0x2a8]
or ecx, 2
mov byte [ebp - 4], 0x13
mov dword [ebp - 0x2a8], ecx
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.004032c0
add eax, 0x10
add esp, 4
mov dword [ebp - 0x2d0], eax
test byte [ebp - 0x2a8], 2
mov dword [ebp - 4], 0x15
je 0x4204d5
mov edx, dword [ebp - 0x2a8]
mov eax, dword [ebp - 0x2bc]
and edx, 0xfffffffd
add eax, 0xfffffff0
mov dword [ebp - 0x2a8], edx
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4204d5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea ecx, [ebp - 0x134]
call fcn.0041e4d0
lea eax, [ebp - 0x2b4]
push eax
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], 0x16
call fcn.0041f320
test eax, eax
je 0x420650
push 8
mov bl, 0x17
push 0x48a168
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], bl
call fcn.00402b90
mov ecx, dword [ebp - 0x2f0]
push 4
lea edx, [ebp - 0x2d8]
mov dword [ebp - 0x2d8], ecx
push edx
lea ecx, [ebp - 0x134]
call fcn.00402b90
mov eax, dword [ebp - 0x2f0]
neg eax
sbb eax, eax
mov dword [ebp - 0x2b8], eax
jmp 0x420550
mov eax, dword [ebp - 0x2b8]
lea ecx, [ecx]
test eax, eax
je 0x420633
call fcn.0046b0c6
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x2a4], eax
lea eax, [ebp - 0x2cc]
push eax
lea ecx, [ebp - 0x2a4]
push ecx
lea edx, [ebp - 0x2b8]
push edx
lea ecx, [ebp - 0x2fc]
mov byte [ebp - 4], 0x18
call fcn.0041f130
mov edi, dword [ebp - 0x2a4]
mov eax, dword [edi - 0xc]
push 4
lea ecx, [ebp - 0x2a0]
push ecx
lea ecx, [ebp - 0x134]
mov dword [ebp - 0x2a0], eax
call fcn.00402b90
mov edx, dword [ebp - 0x2a0]
push edx
push edi
lea ecx, [ebp - 0x134]
call fcn.00402b90
mov esi, eax
mov eax, dword [ebp - 0x2cc]
mov ecx, dword [eax - 0xc]
push 4
lea edx, [ebp - 0x2c0]
mov dword [ebp - 0x2c0], ecx
push edx
mov ecx, esi
call fcn.00402b90
mov eax, dword [ebp - 0x2c0]
mov ecx, dword [ebp - 0x2cc]
push eax
push ecx
mov ecx, esi
call fcn.00402b90
push 8
lea edx, [ebp - 0x2c8]
push edx
mov ecx, eax
call fcn.00402b90
lea eax, [edi - 0x10]
mov byte [ebp - 4], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x420547
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
jmp 0x420547
lea ecx, [ebp - 0x134]
call fcn.0041d3e0
lea ecx, [ebp - 0x134]
mov dword [ebp - 4], 0x16
call fcn.0041f9f0
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], 0x15
call fcn.0041e5b0
mov esi, dword [ebp - 0x2d0]
add esi, 0xfffffff0
push esi
call fcn.004032c0
mov ecx, dword [ebp - 0x2a8]
mov edi, dword [ebp + 8]
add eax, 0x10
or ecx, 1
mov dword [edi], eax
mov dword [ebp - 0x2a8], ecx
add esp, 4
mov byte [ebp - 4], 0xe
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4206a3
mov ecx, dword [esi]
mov edx, dword [ecx]
push esi
call dword [edx + 4]
mov eax, dword [ebp - 0x2cc]
add eax, 0xfffffff0
mov byte [ebp - 4], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4206c7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea ecx, [ebp - 0x2fc]
mov byte [ebp - 4], 6
mov dword [ebp - method.CCommandLineInfo.virtual_0], 0x476ea8
call fcn.0041f020
mov eax, dword [ebp - 0x2b4]
add eax, 0xfffffff0
mov byte [ebp - 4], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x420704
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebp - 0x2b0]
add eax, 0xfffffff0
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x420728
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff0
mov byte [ebp - 4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4207a6
mov ecx, dword [eax]
push eax
jmp 0x4207a1
mov esi, dword [ebp + 0xc]
add esi, 0xfffffff0
push esi
call fcn.004032c0
mov edi, dword [ebp + 8]
add eax, 0x10
add esp, 4
mov dword [edi], eax
lea eax, [ebx - 0x10]
mov dword [ebp - 0x2a8], 1
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42078b
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov byte [ebp - 4], 0
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4207a6
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x14]
call fcn.00455418
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret