Function at 0x435d20
Capabilities:
Check if file exists
Create thread
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49c3c8
mov eax, dword fs:[0]
push eax
sub esp, 0x36c
mov eax, dword [0x4cb070]
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 edi, ecx
cmp dword [edi + 0xcc8], 0
je 0x435d75
mov ecx, dword [edi + 4]
mov edx, str.ck_W
push 1
push 0x4b22bc
call fcn.004391c0
add esp, 8
jmp 0x436481
lea ecx, [ebp - 0x25c]
mov byte [ebp - 0x24e], 1
call fcn.0043ed50
mov dword [ebp - 4], 0
mov ecx, dword [eax]
call fcn.0043f3d0
mov byte [ebp - 0x24d], al
mov dword [ebp - 4], 1
or ebx, 0xffffffff
mov esi, dword [ebp - 0x258]
test esi, esi
je 0x435dce
mov ecx, ebx
lock xadd dword [esi + 4], ecx
jne 0x435dce
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x435dce
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
movzx eax, byte [ebp - 0x24e]
lea edx, [ebp - 0x2f4]
xor ecx, ecx
mov dword [ebp - 4], 0xffffffff
cmp byte [ebp - 0x24d], cl
push edx
cmovne eax, ecx
mov ecx, dword [edi + 0xcb0]
mov dword [ebp - 0x260], eax
xor al, al
mov byte [ebp - 0x24e], al
mov eax, dword [ecx]
call dword [eax + 0x28]
mov ecx, eax
mov dword [ebp - 4], 2
call dword [sym.imp.DuiLib.dll_public:_wchar_t_const____thiscall_DuiLib::CDuiString::GetData_void_const]
mov edx, eax
mov dword [ebp - 0x238], 7
xor eax, eax
mov dword [ebp - 0x23c], 0
mov word [ebp - 0x24c], ax
cmp word [edx], ax
jne 0x435e3e
xor ecx, ecx
jmp 0x435e52
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x435e43
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x24c]
call fcn.0040a9c0
lea ecx, [ebp - 0x2f4]
mov byte [ebp - 4], 4
call dword [sym.imp.DuiLib.dll_public:_void___thiscall_DuiLib::CDuiString::destructor_void_]
mov ecx, dword [edi + 0xca0]
lea edx, [ebp - 0x378]
push edx
mov eax, dword [ecx]
call dword [eax + 0x28]
mov ecx, eax
mov byte [ebp - 4], 5
call dword [sym.imp.DuiLib.dll_public:_wchar_t_const____thiscall_DuiLib::CDuiString::GetData_void_const]
mov edx, eax
mov dword [ebp - 0x220], 7
xor eax, eax
mov dword [ebp - 0x224], 0
mov word [ebp - 0x234], ax
cmp word [edx], ax
jne 0x435eb5
xor ecx, ecx
jmp 0x435ecf
mov ecx, edx
lea esi, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x435ec0
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x234]
call fcn.0040a9c0
lea ecx, [ebp - 0x378]
mov byte [ebp - 4], 7
call dword [sym.imp.DuiLib.dll_public:_void___thiscall_DuiLib::CDuiString::destructor_void_]
mov ecx, dword [edi + 0xcac]
add ecx, 0x6a0
mov eax, dword [ecx]
call dword [eax + 8]
xor cl, cl
mov dword [ebp - 0x21c], eax
mov byte [ebp - 0x24d], cl
cmp eax, 4
jg 0x4361a3
lea ecx, [ebp - 0x25c]
call fcn.00417ad0
lea ecx, [ebp - 0x234]
push ecx
mov ecx, dword [eax]
call fcn.00417d50
mov esi, eax
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x258]
mov dword [ebp - 0x254], edx
test edx, edx
je 0x435f66
mov ecx, ebx
lock xadd dword [edx + 4], ecx
jne 0x435f66
mov eax, dword [edx]
mov ecx, edx
call dword [eax]
mov ecx, dword [ebp - 0x254]
mov eax, ebx
lock xadd dword [ecx + 8], eax
jne 0x435f66
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 7
cmp byte [esi + 0x70], 0
mov ecx, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
je 0x435fd7
cmp dword [esi + 0x88], 8
lea eax, [esi + 0x74]
mov dword [ebp - 0x254], eax
jb 0x435f90
mov eax, dword [eax]
mov dword [ebp - 0x254], eax
push eax
call ecx
test eax, eax
je 0x435fa7
push dword [ebp - 0x254]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
je 0x435fd1
mov ecx, dword [edi + 4]
mov edx, 0x4b312c
push 0
push 0x4b22bc
call fcn.004391c0
add esp, 8
cmp eax, 1
jne 0x436428
mov byte [esi + 0x70], 0
mov byte [ebp - 0x24d], al
mov ecx, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp byte [esi + 0x48], 0
je 0x436035
cmp dword [esi + 0x60], 8
lea eax, [esi + 0x4c]
mov dword [ebp - 0x254], eax
jb 0x435ff4
mov eax, dword [eax]
mov dword [ebp - 0x254], eax
push eax
call ecx
test eax, eax
je 0x43600b
push dword [ebp - 0x254]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
je 0x436035
mov ecx, dword [edi + 4]
mov edx, 0x4b3148
push 0
push 0x4b22bc
call fcn.004391c0
add esp, 8
cmp eax, 1
jne 0x436428
mov byte [esi + 0x48], 0
mov byte [ebp - 0x24d], al
cmp byte [esi + 0x14], 0
je 0x43609b
cmp dword [esi + 0x2c], 8
lea eax, [esi + 0x18]
mov dword [ebp - 0x254], eax
jb 0x436052
mov eax, dword [eax]
mov dword [ebp - 0x254], eax
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x43606d
push dword [ebp - 0x254]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
je 0x43609b
mov ecx, dword [edi + 4]
mov edx, 0x4b3164
push 0
push 0x4b22bc
call fcn.004391c0
add esp, 8
cmp eax, 1
jne 0x436428
mov al, al
mov byte [esi + 0x14], 0
mov byte [ebp - 0x24d], al
jmp 0x4360a1
mov al, byte [ebp - 0x24d]
cmp byte [esi + 0x333], 0
je 0x4360e2
cmp dword [esi + 0x348], 0
jne 0x4360e2
mov ecx, dword [edi + 4]
mov edx, 0x4b3180
push 0
push 0x4b22bc
call fcn.004391c0
add esp, 8
cmp eax, 1
jne 0x436428
mov al, al
mov byte [esi + 0x333], 0
mov byte [ebp - 0x24d], al
cmp byte [esi + 0x399], 0
je 0x43615b
cmp dword [esi + 0x394], 8
lea eax, [esi + 0x380]
mov dword [ebp - 0x254], eax
jb 0x436108
mov eax, dword [eax]
mov dword [ebp - 0x254], eax
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x436123
push dword [ebp - 0x254]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
je 0x436155
cmp dword [esi + 0x424], 0
jne 0x436155
mov ecx, dword [edi + 4]
mov edx, str._rT
push 0
push 0x4b22bc
call fcn.004391c0
add esp, 8
cmp eax, 1
jne 0x436428
mov byte [esi + 0x399], 0
jmp 0x43615f
mov al, byte [ebp - 0x24d]
test al, al
je 0x4361a3
mov ecx, dword [edi + 0xca0]
add ecx, 0x6a0
mov eax, dword [ecx]
call dword [eax + 8]
lea ecx, [ebp - 0x25c]
mov esi, eax
call fcn.00417ad0
mov byte [ebp - 4], 9
mov ecx, dword [eax]
push esi
call fcn.0041a220
lea ecx, [ebp - 0x25c]
mov byte [ebp - 4], 7
call fcn.004029e0
lea ecx, [edi + 0xb3c]
call fcn.0043c3a0
mov ecx, dword [edi + 0xcbc]
xor esi, esi
add ecx, 0x550
mov dword [ebp - 0x254], esi
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
jle 0x436428
nop dword [eax]
nop dword [eax + eax]
mov ecx, dword [edi + 0xcbc]
add ecx, 0x550
push esi
mov eax, dword [ecx]
call dword [eax]
mov esi, eax
mov dword [ebp - 0x258], esi
mov ecx, dword [esi + 0x6f8]
call dword [sym.imp.DuiLib.dll_public:_bool___thiscall_DuiLib::COptionUI::IsSelected_void_const]
test al, al
je 0x436395
cmp dword [esi + 0x71c], 0xfffffffe
jne 0x436395
cmp byte [ebp - 0x260], 0
je 0x4362da
lea ecx, [ebp - 0x270]
call fcn.0043ed50
mov byte [ebp - 4], 0xa
mov ecx, dword [eax]
call fcn.0043f280
mov byte [ebp - 0x24d], al
mov byte [ebp - 4], 0xb
mov esi, dword [ebp - 0x26c]
test esi, esi
je 0x436266
mov ecx, ebx
lock xadd dword [esi + 4], ecx
jne 0x436266
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x436260
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov al, byte [ebp - 0x24d]
test al, al
mov byte [ebp - 4], 7
lea eax, [ebp - 0x218]
je 0x436290
push 0x4af314
push 0x4b31bc
push eax
call fcn.0040e590
push 0x4b31f8
mov edx, 0x4b3204
jmp 0x4362aa
push 0x4af318
push 0x4b3218
push eax
call fcn.0040e590
push 0x4b3b34
mov edx, 0x4b3114
mov ecx, dword [edi + 4]
lea eax, [ebp - 0x218]
push eax
call fcn.00439560
add esp, 0x14
test eax, eax
je 0x436428
cmp eax, 1
je 0x43649d
mov esi, dword [ebp - 0x258]
mov byte [ebp - 0x260], 0
mov ecx, dword [esi + 0x714]
lea edx, [ebp - 0x24c]
cmp dword [ebp - 0x238], 8
cmovae edx, dword [ebp - 0x24c]
mov eax, dword [ecx]
push edx
call dword [eax + 0xe8]
mov ecx, dword [esi + 0x714]
lea edx, [ebp - 0x24c]
cmp dword [ebp - 0x238], 8
cmovae edx, dword [ebp - 0x24c]
mov eax, dword [ecx]
push edx
call dword [eax + 0xc0]
lea ecx, [esi + 0x728]
lea eax, [ebp - 0x234]
cmp ecx, eax
je 0x43633a
push 0xffffffffffffffff
push 0
push eax
call fcn.0040a610
mov eax, dword [ebp - 0x21c]
lea ecx, [ebp - 0x268]
mov dword [esi + 0x740], eax
call fcn.0040c520
mov byte [ebp - 4], 0xc
mov ecx, dword [eax]
push esi
call fcn.0040c8e0
mov byte [ebp - 4], 0xd
mov esi, dword [ebp - 0x264]
test esi, esi
je 0x43638a
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x43638a
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x43638a
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov byte [ebp - 4], 7
mov byte [ebp - 0x24e], 1
mov ecx, dword [edi + 0xcbc]
mov esi, dword [ebp - 0x254]
add ecx, 0x550
inc esi
mov dword [ebp - 0x254], esi
mov eax, dword [ecx]
call dword [eax + 0xc]
cmp esi, eax
jl 0x4361d0
mov al, byte [ebp - 0x24e]
test al, al
je 0x436428
lea ecx, [ebp - 0x268]
call fcn.0040c520
mov esi, dword [eax]
mov eax, dword [edi + 4]
cmp dword [esi + 0x6c], 0
jne 0x4363fc
mov dword [esi + 0x70], eax
lea eax, [ebp - 0x21c]
push eax
push 0
push esi
push 0x40d4a0
push 0
push 0
call fcn.00476b26
add esp, 0x18
mov dword [esi + 0x6c], eax
mov byte [ebp - 4], 0xe
mov esi, dword [ebp - 0x264]
test esi, esi
je 0x436428
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x436428
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], ebx
dec ebx
jne 0x436428
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov eax, dword [ebp - 0x220]
cmp eax, 8
jb 0x436446
inc eax
lea ecx, [ebp - 0x234]
push eax
push dword [ebp - 0x234]
call fcn.0040aba0
xor eax, eax
mov dword [ebp - 0x220], 7
mov word [ebp - 0x234], ax
mov eax, dword [ebp - 0x238]
mov dword [ebp - 0x224], 0
cmp eax, 8
jb 0x436481
inc eax
lea ecx, [ebp - 0x24c]
push eax
push dword [ebp - 0x24c]
call fcn.0040aba0
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.00459a5d
mov esp, ebp
pop ebp
ret
mov ecx, edi
call fcn.00433d40
jmp 0x436428