Function at 0x435500
Capabilities:
Create directory
Get common file path
Get file system object information
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x52bdd6
mov eax, dword fs:[0]
push eax
mov eax, 0x1800
call fcn.004f87d0
mov eax, dword [0x589758]
xor eax, esp
mov dword [esp + 0x17fc], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x589758]
xor eax, esp
push eax
lea eax, [esp + 0x1814]
mov dword fs:[0], eax
mov eax, dword [esp + 0x1828]
mov esi, dword [esp + 0x1824]
mov ebp, dword [esp + 0x182c]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], esi
mov dword [esp + 0x2c], eax
call fcn.004a4f4a
xor ecx, ecx
xor ebx, ebx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x43557c
push 0x80004005
call fcn.00401310
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov dword [esp + 0x181c], ebx
call fcn.004a4f4a
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x4355ad
push 0x80004005
call fcn.00401310
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x24], edi
xor eax, eax
mov byte [esp + 0x181c], 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov byte [esp + 0x11d8], 0
mov dword [esp + 0x11d9], eax
mov dword [esp + 0x11dd], eax
mov dword [esp + 0x11e1], eax
mov dword [esp + 0x11e5], eax
mov dword [esp + 0x11e9], eax
mov dword [esp + 0x11ed], eax
mov dword [esp + 0x11f1], eax
mov word [esp + 0x11f5], ax
mov byte [esp + 0x11f7], al
cmp esi, ebx
je 0x435e2d
cmp byte [esi], al
je 0x435e2d
push 0x104
push esi
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea ecx, [esp + 0x1714]
push ecx
call esi
push 0x104
lea edx, [esp + 0x1710]
push edx
lea eax, [esp + 0x1200]
push eax
call esi
lea ecx, [esp + 0x19c]
push ecx
lea edx, [esp + 0x1710]
push edx
mov ecx, 0x5bf1e0
call fcn.0041abf0
mov dword [esp + 0x14], eax
cmp eax, ebx
jne 0x435690
mov byte [esp + 0x181c], 0
jmp 0x435e34
test byte [esp + 0x19c], 0x10
je 0x435755
cmp byte [esp + 0x1c8], 0x2e
jne 0x4356c9
mov al, byte [esp + 0x1c9]
test al, al
je 0x435d6a
cmp al, 0x2e
jne 0x4356c9
cmp byte [esp + 0x1ca], 0
je 0x435d6a
mov ecx, dword [esp + 0x34]
push 0x104
push ecx
lea edx, [esp + 0x1408]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea eax, [esp + 0x1400]
lea edx, [eax + 1]
jmp 0x4356f0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4356f0
sub eax, edx
cmp byte [esp + eax + 0x13ff], 0x2f
je 0x435716
push 0x53b900
lea eax, [esp + 0x1404]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea ecx, [esp + 0x1c8]
push ecx
lea edx, [esp + 0x1404]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp dword [ebp + 0x218], 0
je 0x435d6a
mov eax, dword [esp + 0x2c]
push ebp
push eax
lea ecx, [esp + 0x1408]
push ecx
mov ecx, dword [esp + 0x3c]
call fcn.00435500
jmp 0x435d6a
mov eax, dword [esp + 0x1bc]
add dword [ebp + 0x258], eax
mov ebx, dword [esp + 0x1b8]
push 0
adc dword [ebp + 0x25c], ebx
mov edx, dword [ebp + 0x25c]
push 0x64
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x258]
push edx
push eax
mov dword [esp + 0x30], ebx
call fcn.004f81e0
mov esi, dword [esp + 0x30]
mov ecx, dword [esi + 0x157c]
push ecx
mov ecx, dword [esi + 0x1578]
push ecx
push edx
push eax
call fcn.004f94b0
push eax
lea ecx, [esi + 0xa8]
call fcn.004746d0
lea edx, [esp + 0x1b0]
push edx
call fcn.004f9202
mov edx, eax
mov eax, dword [edx + 0x14]
mov ecx, dword [edx + 0x10]
mov edi, dword [edx + 0xc]
add esp, 4
add eax, 0x76c
inc ecx
cmp dword [ebp + 0x220], 0
mov dword [esp + 0x38], edx
je 0x435815
mov esi, dword [ebp + 0x234]
cmp eax, esi
jl 0x43587e
mov edx, dword [ebp + 0x240]
cmp eax, edx
jg 0x43587e
cmp eax, esi
jne 0x435866
mov eax, dword [ebp + 0x238]
cmp ecx, eax
jl 0x43587e
jne 0x435815
cmp edi, dword [ebp + 0x23c]
jl 0x43587e
cmp dword [ebp + 0x21c], 0
je 0x435890
mov esi, dword [ebp + 0x230]
test esi, esi
je 0x435890
mov eax, dword [ebp + 0x22c]
shl eax, 0xa
cdq
mov edi, eax
mov ecx, edx
mov eax, esi
shl eax, 0xa
cdq
cmp ebx, ecx
jb 0x435854
ja 0x435848
cmp dword [esp + 0x1c], edi
jb 0x435854
cmp ebx, edx
jb 0x435890
ja 0x435854
cmp dword [esp + 0x1c], eax
jbe 0x435890
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x19c]
push edx
push eax
jmp 0x435d77
cmp eax, edx
jne 0x435815
mov eax, dword [ebp + 0x244]
cmp ecx, eax
jg 0x43587e
jne 0x435815
cmp edi, dword [ebp + 0x248]
jle 0x435815
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x19c]
push eax
push ecx
jmp 0x435d77
xor esi, esi
cmp dword [ebp + 0x20c], esi
jle 0x4358fb
lea ebx, [ebx]
cmp dword [ebp + 0x224], 0
je 0x4358ce
lea ecx, [esp + 0x1c8]
push ecx
call fcn.00528aa4
mov edx, dword [ebp + 0x210]
imul edx, esi
add edx, dword [ebp + 0x214]
push edx
call fcn.00528aa4
add esp, 8
mov ecx, dword [ebp + 0x210]
imul ecx, esi
add ecx, dword [ebp + 0x214]
lea eax, [esp + 0x1c8]
push eax
push ecx
call fcn.00433590
add esp, 8
test eax, eax
jne 0x43590d
inc esi
cmp esi, dword [ebp + 0x20c]
jl 0x4358a0
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x19c]
push edx
push eax
jmp 0x435d77
mov eax, dword [esp + 0x34]
lea edx, [esp + 0x11f8]
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x435920
lea eax, [esp + 0x11f8]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x435934
sub eax, edx
cmp byte [esp + eax + 0x11f7], 0x2f
je 0x435962
lea edi, [esp + 0x11f8]
dec edi
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x435950
mov cx, word [0x53b900]
mov word [edi], cx
lea eax, [esp + 0x1c8]
mov edx, eax
jmp 0x435970
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x435970
lea edi, [esp + 0x11f8]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x435981
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
cmp dword [ebp + 0x208], 0
rep movsb byte es:[edi], byte [esi]
je 0x435a62
mov edx, dword [ebp + 0x268]
mov eax, dword [0x7bf85c]
mov dword [eax + 0x179c], edx
mov ecx, dword [ebp + 0x26c]
mov edx, dword [0x7bf85c]
mov dword [edx + 0x17a0], ecx
mov eax, dword [ebp + 0x208]
mov edx, dword [0x7bf85c]
push eax
lea ecx, [ebp + 0x104]
push ecx
add edx, 0x1458
push edx
call fcn.004f7b80
mov eax, dword [ebp + 0x208]
mov ecx, dword [0x7bf85c]
mov dword [ecx + 0x155c], eax
mov edx, dword [0x7bf85c]
add esp, 0xc
push 0x40000
mov dword [edx + 0x1798], 0
mov ecx, dword [ebp + 0x264]
mov edx, dword [ebp + 0x260]
lea eax, [esp + 0x11dc]
push eax
push ecx
mov ecx, dword [0x7bf85c]
push edx
push 0x53b8fc
lea eax, [esp + 0x120c]
push eax
call fcn.0045c0d0
mov ecx, dword [0x7bf85c]
cmp dword [ecx + 0x1798], 0
jne 0x435a62
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x19c]
push edx
push eax
jmp 0x435d77
lea ecx, [esp + 0x1608]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea eax, [esp + 0x1608]
dec eax
lea ecx, [ecx]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x435a80
mov edx, dword [str.jstar_]
mov cx, word [0x53fa48]
mov dword [eax], edx
mov dl, byte [0x53fa4a]
mov word [eax + 4], cx
mov byte [eax + 6], dl
push 0
lea eax, [esp + 0x160c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
lea ecx, [esp + 0x1c8]
push 0x2e
push ecx
call fcn.004f6860
mov dx, word [0x53fa40]
add esp, 8
mov dword [esp + 0x28], eax
mov word [esp + 0x12fc], dx
test eax, eax
je 0x435b1b
mov cl, byte [0x53fa42]
mov byte [esp + 0x12fe], cl
mov edx, eax
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x435af0
lea edi, [esp + 0x12fc]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x435b01
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x435b59
mov al, byte [0x53fa42]
mov byte [esp + 0x12fe], al
lea eax, [esp + 0x12fc]
mov dword [esp + 0x28], str.noextico
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x435b37
mov ecx, dword [str.noextico]
mov edx, dword [0x53fa38]
mov dword [eax], ecx
mov cl, byte [0x53fa3c]
mov dword [eax + 4], edx
mov byte [eax + 8], cl
xor eax, eax
jmp 0x435b60
mov cl, byte [esp + eax + 0x1608]
mov byte [esp + eax + 0x1504], cl
inc eax
test cl, cl
jne 0x435b60
lea eax, [esp + 0x12fc]
mov edx, eax
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x435b80
lea edi, [esp + 0x1504]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x435b91
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea edx, [esp + 0x1504]
and ecx, 3
push edx
rep movsb byte es:[edi], byte [esi]
call fcn.00424820
mov ebx, dword [0x5bf198]
add esp, 4
xor esi, esi
test ebx, ebx
jle 0x435c43
mov edi, 0x7c90a4
mov edi, edi
mov ecx, dword [esp + 0x28]
inc ecx
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x435bf7
test dl, dl
je 0x435bf3
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x435bf7
add eax, 2
add ecx, 2
test dl, dl
jne 0x435bd7
xor eax, eax
jmp 0x435bfc
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x435c0d
inc esi
add edi, 0x20c
cmp esi, ebx
jl 0x435bd0
jmp 0x435c43
mov eax, esi
imul eax, eax, 0x20c
mov edi, dword [eax + 0x7c90a0]
lea eax, [eax + 0x7c91a8]
lea edx, [esp + 0x14c]
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x435c30
cmp edi, 0xffffffff
jne 0x435cec
push 0x501
push 0x160
lea eax, [esp + 0x44]
push eax
push 0
lea ecx, [esp + 0x1514]
push ecx
call dword [sym.imp.SHELL32.dll_SHGetFileInfoA]
test eax, eax
jne 0x435c83
mov edx, dword [0x53fa2c]
mov al, byte [0x53fa30]
mov dword [esp + 0x14c], edx
mov byte [esp + 0x150], al
xor edi, edi
jmp 0x435cec
mov ecx, dword [0x5bf198]
cmp ecx, 0x1f4
mov edi, dword [esp + 0x40]
jge 0x435ce1
mov eax, dword [esp + 0x28]
imul ecx, ecx, 0x20c
inc eax
mov edx, ecx
sub edx, eax
lea esi, [edx + 0x7c90a4]
lea ebx, [ebx]
mov dl, byte [eax]
mov byte [eax + esi], dl
inc eax
test dl, dl
jne 0x435cb0
lea eax, [esp + 0x14c]
mov edx, eax
mov dword [ecx + 0x7c90a0], edi
sub ecx, edx
lea edx, [ecx + 0x7c91a8]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x435cd1
inc dword [0x5bf198]
mov eax, dword [esp + 0x3c]
push eax
call dword [sym.imp.USER32.dll_DestroyIcon]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push ecx
push edx
lea eax, [esp + 0x20]
push str._I64u
push eax
call fcn.00404e20
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 0xc]
push edx
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
push ecx
inc edx
push edx
add eax, 0x76c
push eax
lea ecx, [esp + 0x48]
push str._.4d__.2d__.2d__.2d:_.2d
push ecx
call fcn.00404e20
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x44]
add dword [ebp + 0x250], 1
push edx
lea eax, [esp + 0x17c]
adc dword [ebp + 0x254], 0
push eax
mov eax, dword [esp + 0x60]
push ecx
lea edx, [esp + 0x1230]
push edx
push 0
push edi
push eax
call fcn.004706c0
add esp, 0x48
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x19c]
push ecx
push edx
mov ecx, 0x5bf1e0
call fcn.0041ac30
test eax, eax
jne 0x435690
mov eax, dword [esp + 0x14]
push eax
mov ecx, 0x5bf1e0
call fcn.0041ac70
mov ebx, dword [esp + 0x2c]
mov ecx, dword [ebx + 0x20]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
xor esi, esi
push esi
push esi
push 0x1004
push ecx
call edi
test eax, eax
jle 0x435dd3
push 1
push esi
mov ecx, ebx
call fcn.004adde4
mov edx, dword [ebx + 0x20]
push 0
push 0
push 0x1004
push edx
inc esi
call edi
cmp esi, eax
jl 0x435db5
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x181c], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x435dfb
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 dword [esp + 0x181c], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x435e26
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
jmp 0x435e79
mov byte [esp + 0x181c], al
lea eax, [edi - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x435e50
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
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov dword [esp + 0x181c], edx
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x435e77
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [esp + 0x1814]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x17fc]
xor ecx, esp
call fcn.004f6592
add esp, 0x180c
ret 0xc