Function at 0x46db80
Capabilities:
Enumerate files on windows
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x52c2cd
mov eax, dword fs:[0]
push eax
sub esp, 0x958
mov eax, dword [0x58c250]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x1c]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x900], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x908], ecx
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x920], edx
mov edx, dword [ebp + 0x28]
mov dword [ebp - 0x8e0], edi
mov dword [ebp - 0x8c4], eax
mov dword [ebp - 0x8b8], ecx
mov dword [ebp - 0x938], edx
mov dword [ebp - 4], 1
mov eax, dword [0x58c214]
mov edx, dword [eax + 0xc]
mov ecx, 0x58c214
call edx
lea esi, [eax + 0x10]
mov dword [ebp - 0x8ac], esi
mov byte [ebp - 4], 3
lea eax, [ebp - 0x8f8]
push eax
call fcn.004b45f0
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x104
add esp, 4
or eax, ecx
jge 0x46dc49
push 0x104
lea ecx, [ebp - 0x8ac]
call fcn.004018b0
mov esi, dword [ebp - 0x8ac]
mov ecx, dword [ebp - 0x8f8]
push 0x104
push esi
push str.LogsDir
push ecx
call fcn.004b4490
add esp, 0x10
test eax, eax
jne 0x46dd1b
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x104
or eax, ecx
jge 0x46dc95
push 0x104
lea ecx, [ebp - 0x8ac]
call fcn.004018b0
mov esi, dword [ebp - 0x8ac]
push esi
push 1
push 0
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jns 0x46dcca
push 0x53fc28
push eax
lea ecx, [ebp - 0x628]
call fcn.00412090
push 0x569810
lea edx, [ebp - 0x628]
push edx
call fcn.004f08d9
test esi, esi
jne 0x46dcd2
xor eax, eax
jmp 0x46dce8
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x46dcd7
sub eax, edx
sar eax, 1
js 0x46dd11
cmp eax, dword [esi - 8]
jg 0x46dd11
push 0x53f310
lea edx, [ebp - 0x8ac]
xor ecx, ecx
push str._sData_
mov dword [esi - 0xc], eax
push edx
mov word [esi + eax*2], cx
call fcn.00402550
add esp, 0xc
jmp 0x46dd61
push 0x80070057
call fcn.004013f0
test esi, esi
jne 0x46dd23
xor eax, eax
jmp 0x46dd41
mov eax, esi
lea edx, [eax + 2]
jmp 0x46dd30
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x46dd30
sub eax, edx
sar eax, 1
js 0x46dd11
cmp eax, dword [esi - 8]
jg 0x46dd11
xor ecx, ecx
mov dword [esi - 0xc], eax
push 6
mov word [esi + eax*2], cx
push str.Data_
lea ecx, [ebp - 0x8ac]
call fcn.00401ed0
fldz
sub esp, 8
fstp qword [esp]
call fcn.00436650
mov esi, dword [edi + 4]
mov edi, dword [edi]
mov ecx, esi
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add esp, 8
add ecx, edx
je 0x46ddb1
xor edx, edx
mov eax, 1
div ecx
imul eax, eax, 0x64
mov dword [ebp - 0x8dc], eax
fild dword [ebp - 0x8dc]
test eax, eax
jns 0x46ddb3
fadd qword [0x53ed50]
jmp 0x46ddb3
fld1
fstp qword [ebp - 0x954]
mov dword [ebp - 0x8c0], edi
cmp edi, esi
je 0x46e70a
mov ebx, edi
mov edi, dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
add ebx, 0x14
mov dword [ebp - 0x8c8], ebx
xor esi, esi
lea ebx, [ebx]
mov edx, dword [ebp - 0x8c4]
push edx
lea eax, [ebp - 0x8e4]
push eax
call fcn.0047d160
mov byte [ebp - 4], 4
mov ecx, dword [ebx]
mov eax, dword [eax]
push ecx
push eax
push 0xed
call fcn.004376a0
add esp, 0x14
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x8e4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46de30
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [0x58c214]
mov eax, dword [edx + 0xc]
mov ecx, 0x58c214
call eax
add eax, 0x10
mov dword [ebp - 0x8bc], eax
mov byte [ebp - 4], 7
mov ecx, dword [ebx + 8]
lea eax, [ebx + 8]
cmp dword [ecx - 0xc], esi
jle 0x46dec9
mov ecx, dword [ebp - 0x8c4]
test cl, 0xa0
jne 0x46deb8
test ecx, 0x100
jne 0x46deb8
push 0x53bb00
push eax
lea edx, [ebp - 0x904]
push edx
call fcn.0042b720
add esp, 0xc
mov byte [ebp - 4], 8
push eax
lea ecx, [ebp - 0x8bc]
call fcn.004022d0
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x904]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46dec9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x46dec9
push esi
push 0x53d168
lea ecx, [ebp - 0x8bc]
call fcn.00401e30
push ebx
lea ecx, [ebp - 0x8ac]
push ecx
lea edx, [ebp - 0x92c]
push edx
call fcn.004316a0
mov byte [ebp - 4], 0xa
push 0x53bb00
push eax
lea eax, [ebp - 0x924]
push eax
call fcn.0042b720
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x8bc]
push ecx
push eax
lea edx, [ebp - 0x91c]
push edx
call fcn.004316a0
mov byte [ebp - 4], 0xc
lea ecx, [ebp + 0x18]
push ecx
push eax
lea edx, [ebp - 0x914]
push edx
call fcn.004316a0
mov byte [ebp - 4], 0xd
push 0x53cd20
push eax
lea eax, [ebp - 0x90c]
push eax
call fcn.0042b720
add esp, 0x3c
mov byte [ebp - 4], 0xe
mov eax, dword [eax]
lea ecx, [ebp - 0x8a8]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x8b4], eax
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x90c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x46df79
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x914]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46df9f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x91c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46dfc5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x924]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46dfeb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x92c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46e011
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [ebp - 0x8b4], 0xffffffff
je 0x46e6a7
mov dword [ebp - 0x8d8], esi
mov dword [ebp - 0x8d4], esi
mov dword [ebp - 0x8d0], esi
mov byte [ebp - 4], 0x14
lea ebx, [ebx]
call dword [sym.imp.KERNEL32.dll_GetLastError]
test byte [ebp - 0x8a8], 0x10
jne 0x46e413
mov ecx, 0x53cd18
lea eax, [ebp - 0x87c]
mov edi, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x46e086
cmp dx, si
je 0x46e082
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x46e086
add eax, 4
add ecx, 4
cmp dx, si
jne 0x46e060
xor eax, eax
jmp 0x46e08b
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, esi
je 0x46e413
cmp word [ebp - 0x87c], 0x2e
je 0x46e413
lea ecx, [ebp - 0x218]
push ecx
lea edx, [ebp - 0x618]
push edx
lea eax, [ebp - 0x418]
push eax
lea ecx, [ebp - 0x18]
push ecx
lea edx, [ebp - 0x87c]
push edx
call fcn.004f4657
mov ecx, dword [ebp + 0x14]
add esp, 0x14
lea eax, [ebp - 0x216]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x46e0f8
cmp dx, si
je 0x46e0f4
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x46e0f8
add eax, 4
add ecx, 4
cmp dx, si
jne 0x46e0d2
xor eax, eax
jmp 0x46e0fd
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, esi
jne 0x46e413
lea eax, [ebp - 0x94c]
push eax
lea ecx, [ebp - 0x95c]
push ecx
lea edx, [ebp - 0x87c]
push edx
call fcn.00458c80
add esp, 0xc
test al, al
je 0x46e413
lea eax, [ebp - 0x658]
push eax
lea ecx, [ebp - 0x95c]
push ecx
call edi
lea edx, [ebp - 0x944]
push edx
lea eax, [ebp - 0x658]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantTimeToSystemTime]
cmp eax, esi
je 0x46e177
movzx ecx, word [ebp - 0x64a]
mov dword [ebp - 0x8b0], ecx
fild dword [ebp - 0x8b0]
fdiv qword [0x53b720]
fadd qword [ebp - 0x944]
fstp qword [ebp - 0x944]
lea edx, [ebp - 0x638]
push edx
lea eax, [ebp - 0x94c]
push eax
call edi
lea ecx, [ebp - 0x964]
push ecx
lea edx, [ebp - 0x638]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantTimeToSystemTime]
cmp eax, esi
je 0x46e1c4
movzx eax, word [ebp - 0x62a]
mov dword [ebp - 0x8b0], eax
fild dword [ebp - 0x8b0]
fdiv qword [0x53b720]
fadd qword [ebp - 0x964]
fstp qword [ebp - 0x964]
lea ecx, [ebp - 0x648]
push ecx
lea edx, [ebp - 0x95c]
push edx
call edi
lea eax, [ebp - 0x8ec]
push eax
lea ecx, [ebp - 0x648]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantTimeToSystemTime]
cmp eax, esi
je 0x46e211
movzx edx, word [ebp - 0x63a]
mov dword [ebp - 0x8b0], edx
fild dword [ebp - 0x8b0]
fdiv qword [0x53b720]
fadd qword [ebp - 0x8ec]
fstp qword [ebp - 0x8ec]
fld qword [ebp - 0x8ec]
fsub qword [ebx - 0xc]
fcomp qword [0x53f650]
fnstsw ax
test ah, 0x41
jp 0x46e413
lea eax, [ebp - 0x628]
push eax
lea ecx, [ebp - 0x94c]
push ecx
call edi
lea edx, [ebp - 0x8f4]
push edx
lea eax, [ebp - 0x628]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantTimeToSystemTime]
cmp eax, esi
je 0x46e278
movzx ecx, word [ebp - 0x61a]
mov dword [ebp - 0x8b0], ecx
fild dword [ebp - 0x8b0]
fdiv qword [0x53b720]
fadd qword [ebp - 0x8f4]
fstp qword [ebp - 0x8f4]
mov edx, dword [ebp - 0x8c0]
fld qword [edx]
fsub qword [ebp - 0x8f4]
fcomp qword [0x53f650]
fnstsw ax
test ah, 0x41
jp 0x46e413
push ebx
lea eax, [ebp - 0x8ac]
push eax
lea ecx, [ebp - 0x8dc]
push ecx
call fcn.004316a0
mov byte [ebp - 4], 0x15
push 0x53bb00
push eax
lea edx, [ebp - 0x918]
push edx
call fcn.0042b720
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x8bc]
push ecx
push eax
lea edx, [ebp - 0x934]
push edx
call fcn.004316a0
mov byte [ebp - 4], 0x17
lea ecx, [ebp + 0x18]
push ecx
push eax
lea edx, [ebp - 0x8fc]
push edx
call fcn.004316a0
mov byte [ebp - 4], 0x18
push 0x53bb00
push eax
lea eax, [ebp - 0x928]
push eax
call fcn.0042b720
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x87c]
push ecx
push eax
lea edx, [ebp - 0x93c]
push edx
call fcn.0042b720
add esp, 0x48
mov byte [ebp - 4], 0x1a
push eax
lea ecx, [ebp - 0x8d8]
call fcn.0046d150
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x93c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46e355
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x18
mov eax, dword [ebp - 0x928]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46e37b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x17
mov eax, dword [ebp - 0x8fc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46e3a1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x16
mov eax, dword [ebp - 0x934]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46e3c7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x918]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46e3ed
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x14
mov eax, dword [ebp - 0x8dc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46e413
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebp - 0x8b4]
lea ecx, [ebp - 0x8a8]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x46e450
cmp dword [ebp - 0x8b8], esi
je 0x46e040
mov eax, dword [ebp - 0x8b8]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
je 0x46e040
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x8b4]
push ecx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov edi, dword [ebp - 0x8d8]
mov dword [ebp - 0x8b4], edi
cmp edi, dword [ebp - 0x8d4]
je 0x46e653
jmp 0x46e480
mov eax, dword [ebp - 0x8b8]
test eax, eax
je 0x46e49e
push 0
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x46e653
mov edx, dword [ebp - 0x8c4]
test dword [ebx - 4], edx
je 0x46e5f1
mov eax, dword [ebp - 0x938]
mov ecx, dword [ebp - 0x8b8]
mov edx, dword [ebp - 0x8e0]
mov esi, dword [edx + 0x2c]
push eax
push ecx
push ecx
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
mov ebx, esp
mov dword [ebp - 0x8b0], esp
mov dword [ebp - 0x930], ebx
call edx
cmp dword [esi - 4], 0
lea edx, [esi - 4]
jl 0x46e4f9
cmp eax, dword [esi - 0x10]
jne 0x46e4f9
lea edi, [esi - 0x10]
mov eax, 1
lock xadd dword [edx], eax
jmp 0x46e531
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x46e7ab
mov eax, dword [esi - 0xc]
mov dword [edi + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.004f0e71
add esp, 0x10
add edi, 0x10
mov dword [ebx], edi
mov byte [ebp - 4], 0x22
push ecx
mov ecx, dword [ebp - 0x8b4]
mov esi, dword [ecx]
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
mov ebx, esp
mov dword [ebp - 0x930], esp
mov dword [ebp - 0x910], ebx
call eax
cmp dword [esi - 4], 0
lea edx, [esi - 4]
jl 0x46e577
cmp eax, dword [esi - 0x10]
jne 0x46e577
lea edi, [esi - 0x10]
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x46e5af
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x46e7ab
mov eax, dword [esi - 0xc]
mov dword [edi + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.004f0e71
add esp, 0x10
add edi, 0x10
mov dword [ebx], edi
mov byte [ebp - 4], 0x24
mov ecx, dword [ebp - 0x8c0]
mov edx, dword [ebp - 0x900]
push ecx
push edx
mov byte [ebp - 4], 0x14
call dword [ebp - 0x920]
mov esi, dword [ebp - 0x908]
mov eax, dword [esi]
mov ecx, dword [eax + 0x5c]
add esp, 0x18
push esi
call ecx
test eax, eax
jns 0x46e5f1
push 0x53f63c
push esi
push eax
call fcn.004ef9d0
mov esi, dword [ebp - 0x8d4]
mov edx, esi
sub edx, dword [ebp - 0x8d8]
sar edx, 2
mov dword [ebp - 0x910], edx
fild dword [ebp - 0x910]
test edx, edx
jns 0x46e618
fadd qword [0x53ed50]
fld1
sub esp, 8
fdivrp st(1)
fmul qword [ebp - 0x954]
fstp qword [esp]
call fcn.00436660
mov eax, dword [ebp - 0x8b4]
mov edi, dword [ebp - 0x8d8]
mov ebx, dword [ebp - 0x8c8]
add eax, 4
add esp, 8
mov dword [ebp - 0x8b4], eax
cmp eax, esi
jne 0x46e480
mov byte [ebp - 4], 7
xor eax, eax
cmp edi, eax
je 0x46e68d
mov esi, edi
cmp edi, dword [ebp - 0x8d4]
je 0x46e682
lea eax, [ebp - 0x8cc]
push esi
push eax
call fcn.0045c720
add esi, 4
add esp, 8
cmp esi, dword [ebp - 0x8d4]
jne 0x46e667
push edi
call fcn.004efd7c
add esp, 4
xor eax, eax
mov edi, dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
mov dword [ebp - 0x8d8], eax
mov dword [ebp - 0x8d4], eax
mov dword [ebp - 0x8d0], eax
xor esi, esi
mov ecx, dword [ebp - 0x8b8]
push esi
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x46e7b0
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x8bc]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x46e6e3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x8c0]
mov ecx, dword [ebp - 0x8e0]
add eax, 0x30
add ebx, 0x30
mov dword [ebp - 0x8c0], eax
mov dword [ebp - 0x8c8], ebx
cmp eax, dword [ecx + 4]
jne 0x46dde0
fld qword [0x53cf90]
sub esp, 8
fstp qword [esp]
call fcn.00436650
add esp, 8
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x8ac]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46e744
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46e767
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46e78d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004f0194
mov esp, ebp
pop ebp
ret
call fcn.004015b0
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x8bc]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x46e7d6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x8ac]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46e7fc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46e81f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x46e845
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
jmp 0x46e78f