Function at 0x40a0c0
Capabilities:
Delete file
Enumerate files on windows
Get common file path
Query or enumerate registry value
Resolve function by parsing pe exports
Set file attributes

Disassembly:
push 0xffffffffffffffff
push 0x43af79
mov eax, dword fs:[0]
push eax
sub esp, 0xcec
mov eax, dword [0x44f6c4]
xor eax, esp
mov dword [esp + 0xce8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x44f6c4]
xor eax, esp
push eax
lea eax, [esp + 0xd00]
mov dword fs:[0], eax
mov esi, ecx
xor ebx, ebx
push 0x43ea84
lea ecx, [esp + 0x44]
mov dword [esp + 0x48], ebx
call fcn.00403350
push 0x43ea84
lea ecx, [esp + 0x1c]
mov dword [esp + 0xd0c], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x58], ebx
call fcn.00403350
push str.FUNC_01VEN_10EC
lea ecx, [esp + 0x38]
mov byte [esp + 0xd0c], 1
call fcn.00403350
push str.FUNC_01VEN_8086
lea ecx, [esp + 0x30]
mov byte [esp + 0xd0c], 2
call fcn.00403350
push str.FUNC_01VEN_1002
lea ecx, [esp + 0x28]
mov byte [esp + 0xd0c], 3
call fcn.00403350
push str.FUNC_01VEN_1022
lea ecx, [esp + 0x34]
mov byte [esp + 0xd0c], 4
call fcn.00403350
push str.FUNC_01VEN_10DE
lea ecx, [esp + 0x24]
mov byte [esp + 0xd0c], 5
call fcn.00403350
push str.FUNC_01VEN_1106
lea ecx, [esp + 0x2c]
mov byte [esp + 0xd0c], 6
call fcn.00403350
push str.FUNC_01VEN_1039
lea ecx, [esp + 0x40]
mov byte [esp + 0xd0c], 7
call fcn.00403350
push str.FUNC_01VEN_10B9
lea ecx, [esp + 0x3c]
mov byte [esp + 0xd0c], 8
call fcn.00403350
push 0x206
lea eax, [esp + 0x8f2]
push ebx
push eax
mov byte [esp + 0xd14], 9
mov word [esp + 0x8f8], bx
call fcn.00427e20
add esp, 0xc
push 6
push ebx
push str.HDAUDIO
push ebx
call dword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsW]
mov edi, eax
cmp edi, 0xffffffff
jne 0x40a3b7
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
mov byte [esp + 0xd08], 8
lea ecx, [eax + 0xc]
or edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a245
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
mov byte [esp + 0xd08], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a26d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0xd08], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a295
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0xd08], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a2bd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0xd08], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a2e5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0xd08], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a30d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0xd08], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a335
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
mov byte [esp + 0xd08], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a35d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0xd08], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a385
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov dword [esp + 0xd08], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a3b0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x40aecd
lea ecx, [esp + 0x68]
push ecx
push ebx
push edi
mov dword [esp + 0x74], 0x1c
mov dword [esp + 0x28], ebx
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
mov ebp, dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
je 0x40a817
mov edi, edi
push ebx
push 0x100
lea edx, [esp + 0x6ec]
push edx
lea eax, [esp + 0x74]
push eax
push edi
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInstanceIdW]
mov ecx, dword [esp + 0x34]
push ecx
lea edx, [esp + 0x6e8]
push edx
call fcn.00427681
add esp, 8
test eax, eax
je 0x40a41f
cmp dword [esi + 0x154], ebx
jne 0x40a51a
mov eax, dword [esp + 0x2c]
push eax
lea ecx, [esp + 0x6e8]
push ecx
call fcn.00427681
add esp, 8
test eax, eax
je 0x40a444
cmp dword [esi + 0x158], ebx
jne 0x40a51a
mov edx, dword [esp + 0x24]
push edx
lea eax, [esp + 0x6e8]
push eax
call fcn.00427681
add esp, 8
test eax, eax
je 0x40a469
cmp dword [esi + 0x158], ebx
jne 0x40a51a
mov ecx, dword [esp + 0x30]
push ecx
lea edx, [esp + 0x6e8]
push edx
call fcn.00427681
add esp, 8
test eax, eax
je 0x40a48e
cmp dword [esi + 0x158], ebx
jne 0x40a51a
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x6e8]
push ecx
call fcn.00427681
add esp, 8
test eax, eax
je 0x40a4af
cmp dword [esi + 0x158], ebx
jne 0x40a51a
mov edx, dword [esp + 0x28]
push edx
lea eax, [esp + 0x6e8]
push eax
call fcn.00427681
add esp, 8
test eax, eax
je 0x40a4d0
cmp dword [esi + 0x158], ebx
jne 0x40a51a
mov ecx, dword [esp + 0x3c]
push ecx
lea edx, [esp + 0x6e8]
push edx
call fcn.00427681
add esp, 8
test eax, eax
je 0x40a4f1
cmp dword [esi + 0x158], ebx
jne 0x40a51a
mov eax, dword [esp + 0x38]
push eax
lea ecx, [esp + 0x6e8]
push ecx
call fcn.00427681
add esp, 8
test eax, eax
je 0x40a7f7
cmp dword [esi + 0x158], ebx
je 0x40a7f7
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x18]
push eax
push 4
lea ecx, [esp + 0x74]
push ecx
push edi
call fcn.004019e0
add esp, 0x14
test eax, eax
je 0x40a7f7
mov ebx, dword [esp + 0x14]
push str.IntcAzAudAddService
push ebx
call fcn.00427681
add esp, 8
test eax, eax
jne 0x40a568
push str.RTHDMIAzAudService
push ebx
call fcn.00427681
add esp, 8
test eax, eax
je 0x40a7f5
push 0x20019
push 2
push 0
push 1
lea edx, [esp + 0x78]
push edx
push edi
call dword [sym.imp.SETUPAPI.dll_SetupDiOpenDevRegKey]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x40a7f5
mov eax, dword [0x450b54]
xor ecx, ecx
cmp eax, 0x5a
setge cl
push 0
sub ecx, 1
and ecx, 0x1e
add eax, ecx
push eax
mov dword [0x450b54], eax
mov edx, dword [esi + 0x7a80]
push 0x402
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
mov ecx, esi
call fcn.00401740
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0xaf8]
push ecx
lea edx, [esp + 0x54]
push edx
push 0
push str.InfPath
push ebx
mov dword [esp + 0x64], 1
mov dword [esp + 0x60], 0x208
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x40a7e8
push 0x104
lea eax, [esp + 0x2d8]
push eax
call ebp
push str.inf_
lea ecx, [esp + 0x2d8]
push 0x104
push ecx
call fcn.00427d97
lea edx, [esp + 0xb00]
push edx
lea eax, [esp + 0x2e4]
push 0x104
push eax
call fcn.00427d97
add esp, 0x18
push 0
push 0x80
lea ecx, [esp + 0x8f4]
push ecx
push 0
push 9
lea edx, [esp + 0x7c]
push edx
push edi
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceRegistryPropertyW]
test eax, eax
je 0x40a760
lea eax, [esp + 0x68]
push eax
push edi
push 5
call dword [sym.imp.SETUPAPI.dll_SetupDiCallClassInstaller]
push ecx
lea edx, [esp + 0x2d8]
mov ecx, esp
mov dword [esp + 0x54], esp
push edx
mov ebp, eax
call fcn.00406860
mov ecx, esi
call fcn.00406f30
test eax, eax
je 0x40a6a6
mov eax, dword [esi + 0x7a2c]
imul eax, eax, 0x260
mov dword [eax + esi + 0x368], ebp
mov eax, dword [0x450b54]
xor ecx, ecx
cmp eax, 0x5a
setge cl
push 0
sub ecx, 1
and ecx, 0xa
add eax, ecx
push eax
mov dword [0x450b54], eax
mov edx, dword [esi + 0x7a80]
push 0x402
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
mov ecx, esi
call fcn.00401740
cmp dword [0x450b70], 0
jne 0x40a772
cmp dword [0x450b74], 0
jne 0x40a772
mov ebp, dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x80
lea eax, [esp + 0x2d8]
push eax
call ebp
lea ecx, [esp + 0x2d4]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea edx, [esp + 0x2d4]
push 0x43f3a0
push edx
call fcn.00427681
add esp, 8
mov word [eax], 0x2e
mov word [eax + 2], 0x50
mov word [eax + 4], 0x4e
mov word [eax + 6], 0x46
push 0x80
lea eax, [esp + 0x2d8]
push eax
call ebp
lea ecx, [esp + 0x2d4]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp dword [0x450b70], 0
jne 0x40a772
cmp dword [0x450b74], 0
je 0x40a7e8
lea edx, [esp + 0x44]
push edx
push 0
lea eax, [esp + 0x2dc]
push 0x24
push eax
call fcn.00401a70
add esp, 0x10
test eax, eax
je 0x40a79b
push eax
push 3
mov ecx, esi
call fcn.00404db0
jmp 0x40a7e8
lea ecx, [esp + 0x2d4]
push 0x43f3a0
push ecx
call fcn.00427681
add esp, 8
push 0x80
lea edx, [esp + 0x2d8]
push edx
mov word [eax], 0x2e
mov word [eax + 2], 0x50
mov word [eax + 4], 0x4e
mov word [eax + 6], 0x46
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea eax, [esp + 0x2d4]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebp, dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
xor ebx, ebx
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x68]
add eax, 1
push ecx
push eax
push edi
mov dword [esp + 0x28], eax
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
jne 0x40a3e0
push edi
call dword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
cmp dword [0x450b70], ebx
jne 0x40a872
cmp dword [0x450b74], ebx
jne 0x40a872
push 0x208
lea edx, [esp + 0x4e0]
push edx
call ebp
push str.INF_
lea eax, [esp + 0x4e0]
push 0x104
push eax
call fcn.00427d97
add esp, 0xc
lea ecx, [esi + 0x7a60]
push ecx
lea edx, [esp + 0x4e0]
push edx
mov ecx, esi
call fcn.004077e0
jmp 0x40ad2e
mov eax, dword [0x450b54]
xor ecx, ecx
cmp eax, 0x5a
setge cl
push ebx
sub ecx, 1
and ecx, 0x1e
add eax, ecx
push eax
mov dword [0x450b54], eax
mov edx, dword [esi + 0x7a80]
push 0x402
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
push ebx
mov ecx, esi
call fcn.00401740
push 0x250
lea eax, [esp + 0x88]
push ebx
push eax
call fcn.00427e20
add esp, 0xc
push 0x104
lea ecx, [esp + 0x2d8]
push ecx
call ebp
push str.infoem.inf
lea edx, [esp + 0x2d8]
push 0x104
push edx
call fcn.00427d97
add esp, 0xc
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x2d8]
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov edi, eax
cmp edi, 0xffffffff
mov dword [esp + 0x1c], edi
je 0x40ad27
mov ebx, dword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
lea edx, [esp + 0xb0]
push edx
lea ecx, [esp + 0x18]
call fcn.00406860
mov eax, dword [esp + 0x14]
push 0
push 2
push 0
push eax
mov byte [esp + 0xd18], 0xa
call dword [sym.imp.SETUPAPI.dll_SetupOpenInfFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x40ace4
mov eax, dword [0x450b54]
xor ecx, ecx
cmp eax, 0x5a
setge cl
push 0
sub ecx, 1
and ecx, 5
add eax, ecx
push eax
mov dword [0x450b54], eax
mov edx, dword [esi + 0x7a80]
push 0x402
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
mov ecx, esi
call fcn.00401740
lea eax, [esp + 0x58]
push eax
push 0
push str.Manufacturer
push edi
call dword [sym.imp.SETUPAPI.dll_SetupFindFirstLineW]
test eax, eax
je 0x40ace1
push 0
push 0x100
lea ecx, [esp + 0x4e4]
push ecx
push 1
lea edx, [esp + 0x68]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldW]
test eax, eax
je 0x40ace1
lea eax, [esp + 0x58]
push eax
push 0
lea ecx, [esp + 0x4e4]
push ecx
push edi
mov ecx, esi
call fcn.00406920
test eax, eax
jne 0x40a9fd
push edi
call ebx
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0xd08], 9
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x40ad00
lea ecx, [esp + 0x58]
push ecx
push 0
lea edx, [esp + 0x4e4]
push edx
push edi
call dword [sym.imp.SETUPAPI.dll_SetupFindFirstLineW]
test eax, eax
je 0x40ace1
push 0
push 0x100
lea eax, [esp + 0x4e4]
push eax
push 2
lea ecx, [esp + 0x68]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldW]
test eax, eax
je 0x40ace1
lea edx, [esp + 0x4dc]
push str.HDAUDIOFUNC_01VEN_10EC
push edx
call fcn.00427681
add esp, 8
test eax, eax
je 0x40aa65
cmp dword [esi + 0x154], 0
jne 0x40ab67
lea eax, [esp + 0x4dc]
push str.HDAUDIOFUNC_01VEN_8086
push eax
call fcn.00427681
add esp, 8
test eax, eax
je 0x40aa8b
cmp dword [esi + 0x158], 0
jne 0x40ab67
lea ecx, [esp + 0x4dc]
push str.HDAUDIOFUNC_01VEN_1002
push ecx
call fcn.00427681
add esp, 8
test eax, eax
je 0x40aab1
cmp dword [esi + 0x158], 0
jne 0x40ab67
lea edx, [esp + 0x4dc]
push str.HDAUDIOFUNC_01VEN_1022
push edx
call fcn.00427681
add esp, 8
test eax, eax
je 0x40aad7
cmp dword [esi + 0x158], 0
jne 0x40ab67
lea eax, [esp + 0x4dc]
push str.HDAUDIOFUNC_01VEN_10DE
push eax
call fcn.00427681
add esp, 8
test eax, eax
je 0x40aaf9
cmp dword [esi + 0x158], 0
jne 0x40ab67
lea ecx, [esp + 0x4dc]
push str.HDAUDIOFUNC_01VEN_1106
push ecx
call fcn.00427681
add esp, 8
test eax, eax
je 0x40ab1b
cmp dword [esi + 0x158], 0
jne 0x40ab67
lea edx, [esp + 0x4dc]
push str.HDAUDIOFUNC_01VEN_1039
push edx
call fcn.00427681
add esp, 8
test eax, eax
je 0x40ab3d
cmp dword [esi + 0x158], 0
jne 0x40ab67
lea eax, [esp + 0x4dc]
push str.HDAUDIOFUNC_01VEN_10B9
push eax
call fcn.00427681
add esp, 8
test eax, eax
je 0x40ace1
cmp dword [esi + 0x158], 0
je 0x40ace1
lea ecx, [esp + 0x58]
push ecx
push str.MfgName
push str.Strings
push edi
call dword [sym.imp.SETUPAPI.dll_SetupFindFirstLineW]
test eax, eax
je 0x40abd1
push 0
push 0x100
lea edx, [esp + 0x4e4]
push edx
push 1
lea eax, [esp + 0x68]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldW]
test eax, eax
je 0x40abd1
lea ecx, [esp + 0x4dc]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00405950
lea ecx, [esp + 0x18]
call fcn.00402d50
lea edx, [esp + 0x18]
push str.REALTEK
push edx
call fcn.00405a00
add esp, 8
test al, al
je 0x40abea
push edi
call ebx
lea ecx, [esp + 0x14]
mov byte [esp + 0xd08], 9
call fcn.00401090
jmp 0x40ad0c
push 0x104
lea eax, [esp + 0x2d8]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
push str.inf_
lea ecx, [esp + 0x2d8]
push 0x104
push ecx
call fcn.00427d97
lea edx, [esp + 0xbc]
push edx
lea eax, [esp + 0x2e4]
push 0x104
push eax
call fcn.00427d97
add esp, 0x14
lea edx, [esp + 0x2d8]
mov ecx, esp
mov dword [esp + 0x54], esp
push edx
call fcn.00406860
mov ecx, esi
call fcn.00406f30
mov ebp, eax
lea eax, [esp + 0x44]
push eax
push 0
lea ecx, [esp + 0x2dc]
push 0x24
push ecx
call fcn.00401a70
add esp, 0x10
test eax, eax
je 0x40ac76
push eax
push 3
mov ecx, esi
call fcn.00404db0
jmp 0x40ace1
test ebp, ebp
je 0x40ac91
mov edx, dword [esi + 0x7a2c]
imul edx, edx, 0x260
mov dword [edx + esi + 0x368], 1
lea eax, [esp + 0x2d4]
push 0x43f3a0
push eax
call fcn.00427681
add esp, 8
push edi
mov word [eax], 0x2e
mov word [eax + 2], 0x50
mov word [eax + 4], 0x4e
mov word [eax + 6], 0x46
call ebx
push 0x80
lea ecx, [esp + 0x2d8]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea edx, [esp + 0x2d4]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push edi
call ebx
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0xd08], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ad0c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x1c]
lea ecx, [esp + 0x84]
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x40a912
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, esi
call fcn.004073d0
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
mov byte [esp + 0xd08], 8
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40ad5d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
mov byte [esp + 0xd08], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ad85
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0xd08], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40adad
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0xd08], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40add5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0xd08], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40adfd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0xd08], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ae25
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0xd08], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ae4d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
mov byte [esp + 0xd08], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ae75
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0xd08], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ae9d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov dword [esp + 0xd08], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40aec8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [esp + 0xd00]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xce8]
xor ecx, esp
call fcn.004274dc
add esp, 0xcf8
ret