Function at 0x410681
Capabilities:
Set current directory

Disassembly:
mov eax, 0x41b3bf
call fcn.00403df8
push ecx
push ebx
push edi
mov edi, ecx
mov dword [ebp - 0x10], edi
mov dword [ebp - 4], 4
push edi
xor ebx, ebx
push ebx
push 0x624108
call dword [sym.imp.KERNEL32.dll_InterlockedCompareExchange]
cmp eax, edi
jne 0x410967
push esi
push dword [edi + 0xc]
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
lea eax, [edi + 0x88]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov esi, dword [edi]
jmp 0x4106d8
push ebx
push dword [esi]
call dword [sym.imp.KERNEL32.dll_TerminateThread]
add esi, 4
cmp esi, dword [edi + 4]
jne 0x4106cc
lea eax, [edi + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x4215e4
call fcn.0040f266
mov edx, 0x40fc4f
mov ecx, eax
call fcn.00405067
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x4215fc
call fcn.0040f266
mov edx, 0x40fc60
mov ecx, eax
call fcn.00405067
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421614
call fcn.0040f266
mov edx, 0x40fc71
mov ecx, eax
call fcn.00405067
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x42162c
call fcn.0040f266
mov edx, 0x40fc91
mov ecx, eax
call fcn.00405067
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421644
call fcn.0040f266
mov edx, 0x40fcb1
mov ecx, eax
call fcn.00405067
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421660
call fcn.0040f266
mov edx, 0x40fd0d
mov ecx, eax
call fcn.00405067
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x42167c
call fcn.0040f266
mov edx, 0x40fd69
mov ecx, eax
call fcn.00405067
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421698
call fcn.0040f266
add esp, 0x40
mov edx, 0x40fdd0
mov ecx, eax
call fcn.00405067
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x4216b4
call fcn.0040f266
mov edx, 0x40fe37
mov ecx, eax
call fcn.00405067
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x4216d0
call fcn.0040f266
mov edx, 0x40fe37
mov ecx, eax
call fcn.00405067
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x4216ec
call fcn.0040f266
mov edx, 0x40fe3a
mov ecx, eax
call fcn.00405067
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421700
call fcn.0040f266
mov edx, 0x40fe5d
mov ecx, eax
call fcn.00405067
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421718
call fcn.0040f266
mov edx, 0x40fe97
mov ecx, eax
call fcn.00405067
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x42172c
call fcn.0040f266
mov edx, 0x40fece
mov ecx, eax
call fcn.00405067
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421740
call fcn.0040f266
mov edx, 0x40ff4f
mov ecx, eax
call fcn.00405067
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421764
call fcn.0040f266
add esp, 0x40
mov edx, 0x40ff54
mov ecx, eax
call fcn.00405067
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421778
call fcn.0040f266
mov edx, 0x40ff76
mov ecx, eax
call fcn.00405067
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x421790
call fcn.0040f266
mov edx, 0x40ff98
mov ecx, eax
call fcn.00405067
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x4217a8
call fcn.0040f266
mov edx, 0x40ffbe
mov ecx, eax
call fcn.00405067
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x4217c0
call fcn.0040f266
mov edx, 0x40ffe4
mov ecx, eax
call fcn.00405067
mov ecx, dword [edi + 0x2ec]
push ebx
push ebx
mov edx, 0x4217d8
call fcn.0040f266
add esp, 0x28
mov edx, 0x41000e
mov ecx, eax
call fcn.00405067
pop esi
mov byte [ebp - 4], 3
push ebx
push 1
lea ecx, [edi + 0x70]
call fcn.004048f0
mov byte [ebp - 4], 2
lea ecx, [edi + 0x58]
call fcn.004047bf
mov byte [ebp - 4], 1
push ebx
push 1
lea ecx, [edi + 0x40]
call fcn.004048f0
mov byte [ebp - 4], bl
lea ecx, [edi + 0x28]
call fcn.004047bf
or dword [ebp - 4], 0xffffffff
cmp dword [edi], ebx
je 0x4109b4
push dword [edi]
call fcn.004013ce
pop ecx
mov dword [edi], ebx
mov dword [edi + 4], ebx
mov dword [edi + 8], ebx
mov ecx, dword [ebp - 0xc]
pop edi
pop ebx
mov dword fs:[0], ecx
leave
ret