Function at 0x435360
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5f4926
mov eax, dword fs:[0]
push eax
sub esp, 0x94
push ebx
push esi
push edi
mov eax, dword [0x6b7e40]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x18], dl
mov ebx, ecx
mov dword [ebp - 0x50], ebx
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x4353ab
push 0
push 0x63bfdc
mov ecx, esi
call fcn.00402090
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x4353c0
push 0
push 0x63bfdc
mov ecx, eax
call fcn.00402090
call fcn.004369b0
push 0x6c1ea4
mov dword [ebp - 0x4c], vtable.CCriticalSectionAccess.0
mov dword [ebp - 0x48], 0x6c1ea4
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [ebp - 0x44], 1
push 0x63bfdc
lea ecx, [ebp - 0x30]
mov dword [ebp - 4], 0
call fcn.004021e0
push 0x63bfdc
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 1
call fcn.004021e0
lea eax, [ebp - 0x38]
push eax
lea edx, [ebp - 0x30]
mov ecx, ebx
mov byte [ebp - 4], 2
call fcn.0041aa70
mov ecx, dword [ebp - 0x30]
add esp, 4
call fcn.00414b70
test al, al
jne 0x4357f6
call fcn.004a4516
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x43544b
push 0x80004005
call fcn.00402040
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 3
push dword [ebx]
lea eax, [ebp - 0x14]
push str.WARNING:_Creating_directory_for_lock_file_which_did_not_exist:__s
push eax
call fcn.00404520
add esp, 0xc
lea ecx, [ebp - 0x1c]
push 0x63bfdc
call fcn.004021e0
xor ecx, ecx
call fcn.004051a0
mov edi, eax
push ecx
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
mov esi, esp
push ecx
call fcn.004046f0
add esp, 4
add eax, 0x10
push 0
push 0
mov dword [esi], eax
lea eax, [ebp - 0x14]
push eax
push 0x1ea
push str.C:_amintegration_tools_setupishield_sldimdataDownloadData.cpp
push 0
push 1
mov ecx, edi
call fcn.004055a0
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
or edi, 0xffffffff
lea ecx, [edx + 0xc]
mov eax, edi
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x4354e0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x30]
push ecx
add eax, 0xfffffff0
mov esi, esp
push eax
call fcn.004046f0
add eax, 0x10
add esp, 4
mov dword [esi], eax
call fcn.00415120
add esp, 4
test al, al
jne 0x4355bf
push dword [ebx]
mov esi, dword [ebp + 8]
push str.Unable_to_create_directory_for_lock_file__s
push esi
call fcn.00404520
add esp, 8
mov ecx, esp
push 0x63bfdc
call fcn.004021e0
push 0
push esi
push 0x1ef
push str.C:_amintegration_tools_setupishield_sldimdataDownloadData.cpp
push 1
push 1
xor ecx, ecx
call fcn.004051a0
mov ecx, eax
call fcn.004022e0
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x435565
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x38]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x435585
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x4355a3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x4c]
call fcn.00404e60
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4355df
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp + 0xc]
lea ecx, [ebp - 0x2c]
call fcn.00416d80
mov byte [ebp - 4], 5
test esi, esi
je 0x4355fd
lea eax, [ebp - 0x2c]
push eax
mov ecx, esi
call fcn.00404570
lea ecx, [ebp - 0x28]
call fcn.00416e30
mov byte [ebp - 4], 6
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x435619
lea eax, [ebp - 0x28]
push eax
call fcn.00404570
push 0x640d60
lea ecx, [ebp - 0x34]
call fcn.004021e0
mov byte [ebp - 4], 7
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x435f27
test al, 0x10
jne 0x435f27
push str.UnknownComputer
lea ecx, [ebp - 0x20]
call fcn.004021e0
push str.UnknownUser
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0xb
call fcn.004021e0
push 0x640d60
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0xc
call fcn.004021e0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x1c], 0
mov byte [ebp + 0xf], 0
call fcn.004b0715
mov dword [ebp - 0x84], vtable.CStdioFileT.0
mov byte [ebp - 0x6c], 0
push 0
push 0xffffffffffffffff
push 0
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0xe
call fcn.004074c0
mov byte [ebp - 4], 0x10
mov ecx, dword [ebx]
mov dword [ebp - 0x40], ecx
push ecx
lea ecx, [ebp - 0x14]
call fcn.004021e0
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x14]
mov byte [ebp - 0x6c], 0
call fcn.004125a0
mov byte [ebp - 0x6c], al
test al, al
mov ecx, 0x8040
mov eax, 0x4040
cmovne eax, ecx
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x68], eax
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x435709
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x64]
push eax
mov eax, dword [ebp - 0x88]
push eax
push dword [ebp - 0x40]
lea ecx, [ebp - 0x84]
call fcn.004b09a0
test eax, eax
je 0x43582f
push 0x63bfdc
lea ecx, [ebp - 0x14]
mov byte [ebp + 0xf], 1
call fcn.004021e0
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0x12
call fcn.004122a0
test eax, eax
je 0x4357fe
mov eax, dword [ebp - 0x14]
cmp dword [eax - 0xc], 0
je 0x4357fe
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x20]
call fcn.00404570
test esi, esi
je 0x43577e
lea eax, [ebp - 0x20]
push eax
mov ecx, esi
call fcn.00404570
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x84]
call fcn.004122a0
test eax, eax
je 0x4357fe
mov eax, dword [ebp - 0x14]
cmp dword [eax - 0xc], 0
je 0x4357fe
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x24]
call fcn.00404570
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x4357b8
lea ecx, [ebp - 0x24]
push ecx
mov ecx, eax
call fcn.00404570
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x84]
call fcn.004122a0
test eax, eax
je 0x4357fe
mov eax, dword [ebp - 0x14]
cmp dword [eax - 0xc], 0
je 0x4357fe
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x3c]
call fcn.00404570
push 0xa
push 0
push dword [ebp - 0x3c]
call fcn.005bc96e
mov esi, eax
add esp, 0xc
mov dword [ebp - 0x1c], esi
jmp 0x435801
or edi, 0xffffffff
jmp 0x4355e2
mov esi, dword [ebp - 0x1c]
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
mov dword [ebp + 0x10], eax
lea ecx, [eax + 0xc]
mov edx, edi
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x435832
mov ecx, dword [eax]
push dword [ebp + 0x10]
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xf
jmp 0x435851
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 4], 0xf
jmp 0x435851
cmp byte [ebp + 0xf], 0
je 0x435da8
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0x14
call fcn.004b0878
mov dword [ebp - 4], 0xf
jmp 0x435886
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x43589e
push 0x80004005
call fcn.00402040
push eax
push dword [ebp - 0x20]
call fcn.005be8d5
add esp, 8
test eax, eax
jne 0x435ade
mov eax, dword [ebp - 0x28]
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4358ca
push 0x80004005
call fcn.00402040
push eax
push dword [ebp - 0x24]
call fcn.005be8d5
add esp, 8
test eax, eax
je 0x435937
lea ecx, [ebp + 0xc]
call fcn.00404540
mov byte [ebp - 4], 0x19
push dword [ebp - 0x28]
lea eax, [ebp + 0xc]
push dword [ebp - 0x24]
push str.WARNING:_Existing_lock_file_for_this_computer_has_different_user_name___s____s_
push eax
call fcn.00404520
add esp, 0xc
mov ecx, esp
push 0x63bfdc
call fcn.004021e0
push 0
lea eax, [ebp + 0xc]
push eax
push 0x263
push str.C:_amintegration_tools_setupishield_sldimdataDownloadData.cpp
push 1
push 1
xor ecx, ecx
call fcn.004051a0
mov ecx, eax
call fcn.004022e0
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 0xf
call fcn.00401020
cmp byte [ebp - 0x18], 0
je 0x435a10
push 0
mov byte [ebp - 4], 0x21
push dword [ebx]
call fcn.004afdd8
jmp 0x435959
mov dword [ebp - 4], 0xf
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x43599d
test al, 0x10
jne 0x43599d
push dword [ebx]
mov esi, dword [ebp + 8]
push str.INTERNAL_ERROR:_unable_to_delete_owned_lock_file__s
push esi
call fcn.00404520
add esp, 8
mov ecx, esp
push 0x63bfdc
call fcn.004021e0
push 0
push esi
push 0x2cc
jmp 0x435b0f
lea ecx, [ebp - 0x64]
call fcn.00407440
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0xd
call fcn.004b072f
lea ecx, [ebp - 0x3c]
call fcn.00401020
lea ecx, [ebp - 0x24]
call fcn.00401020
lea ecx, [ebp - 0x20]
call fcn.00401020
lea ecx, [ebp - 0x34]
call fcn.00401020
lea ecx, [ebp - 0x28]
call fcn.00401020
lea ecx, [ebp - 0x2c]
call fcn.00401020
lea ecx, [ebp - 0x38]
call fcn.00401020
lea ecx, [ebp - 0x30]
call fcn.00401020
lea ecx, [ebp - 0x4c]
call fcn.00404e60
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [esi + 1]
push eax
lea eax, [ebp - 0x34]
push 0x641d0c
push eax
call fcn.00404520
mov eax, dword [ebp - 0x34]
add esp, 8
add eax, 0xfffffff0
mov dword [ebp + 0xc], esp
mov esi, esp
push eax
call fcn.004046f0
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0x24
mov eax, dword [ebp - 0x28]
add eax, 0xfffffff0
mov dword [ebp + 0x10], esp
mov esi, esp
push eax
call fcn.004046f0
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0x25
mov eax, dword [ebp - 0x2c]
add eax, 0xfffffff0
mov esi, esp
push eax
call fcn.004046f0
mov edx, dword [ebp + 8]
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov ecx, ebx
mov byte [ebp - 4], 0xf
call fcn.00436a90
add esp, 0xc
lea ecx, [ebp - 0x64]
mov bl, al
call fcn.00407440
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0xd
call fcn.004b072f
lea ecx, [ebp - 0x3c]
call fcn.00401020
lea ecx, [ebp - 0x24]
call fcn.00401020
lea ecx, [ebp - 0x20]
call fcn.00401020
lea ecx, [ebp - 0x34]
call fcn.00401020
lea ecx, [ebp - 0x28]
call fcn.00401020
lea ecx, [ebp - 0x2c]
call fcn.00401020
lea ecx, [ebp - 0x38]
call fcn.00401020
lea ecx, [ebp - 0x30]
call fcn.00401020
jmp 0x4360e7
cmp byte [ebp - 0x18], 0
je 0x435b82
push dword [ebx]
mov esi, dword [ebp + 8]
push str.INTERNAL_ERROR:_attempt_to_delete_unowned_lock_file__s
push esi
call fcn.00404520
add esp, 8
mov ecx, esp
push 0x63bfdc
call fcn.004021e0
push 0
push esi
push 0x26c
push str.C:_amintegration_tools_setupishield_sldimdataDownloadData.cpp
push 1
push 1
xor ecx, ecx
call fcn.004051a0
mov ecx, eax
call fcn.004022e0
lea ecx, [ebp - 0x64]
call fcn.00407440
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0xd
call fcn.004b072f
lea ecx, [ebp - 0x3c]
call fcn.00401020
lea ecx, [ebp - 0x24]
call fcn.00401020
lea ecx, [ebp - 0x20]
call fcn.00401020
lea ecx, [ebp - 0x34]
call fcn.00401020
lea ecx, [ebp - 0x28]
call fcn.00401020
lea ecx, [ebp - 0x2c]
call fcn.00401020
lea ecx, [ebp - 0x38]
call fcn.00401020
lea ecx, [ebp - 0x30]
call fcn.00401020
jmp 0x4355a3
mov ecx, dword [0x6c1ea0]
push ebx
lea eax, [ebp + 0xc]
push eax
call fcn.0043d590
mov ecx, dword [0x6c1ea0]
mov eax, dword [ecx]
cmp dword [ebp + 0xc], eax
jne 0x435c29
mov ecx, dword [0x6c1e9c]
call fcn.00407640
mov edi, dword [ebp - 0x1c]
push edx
push eax
mov eax, dword [ebp - 0x24]
push edi
push ecx
add eax, 0xfffffff0
mov dword [ebp + 0xc], esp
mov esi, esp
push eax
call fcn.004046f0
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0x1a
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
mov esi, esp
push eax
call fcn.004046f0
add eax, 0x10
mov dword [esi], eax
add esp, 4
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0xf
call fcn.00434c30
lea eax, [ebp - 0xa0]
push eax
mov byte [ebp - 4], 0x1b
mov ecx, dword [0x6c1ea0]
push ebx
call fcn.0043d460
mov ecx, eax
call fcn.00436110
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0xf
call fcn.00410540
mov ecx, dword [0x6c1ea0]
jmp 0x435c2c
mov edi, dword [ebp - 0x1c]
push ebx
call fcn.0043d460
push dword [ebp - 0x20]
mov esi, eax
mov ecx, esi
call fcn.0040f140
test eax, eax
je 0x435cd2
lea ecx, [ebp + 0xc]
call fcn.00404540
mov byte [ebp - 4], 0x1c
push dword [ebp - 0x24]
lea eax, [ebp + 0xc]
push dword [ebp - 0x20]
push dword [esi]
push dword [ebx]
push str.WARNING:_Another_computer_recently_stole_the_lock_file__s:__s___s____s
push eax
call fcn.00404520
add esp, 0x14
mov ecx, esp
push 0x63bfdc
call fcn.004021e0
push 0
lea eax, [ebp + 0xc]
push eax
push 0x285
push str.C:_amintegration_tools_setupishield_sldimdataDownloadData.cpp
push 0
push 1
xor ecx, ecx
call fcn.004051a0
mov ecx, eax
call fcn.004022e0
lea eax, [ebp - 0x20]
push eax
mov ecx, esi
call fcn.00404570
lea eax, [ebp - 0x24]
lea ecx, [esi + 4]
push eax
call fcn.00404570
mov ecx, dword [0x6c1e9c]
mov dword [esi + 8], edi
call fcn.00407640
lea ecx, [ebp + 0xc]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
mov byte [ebp - 4], 0xf
call fcn.00401020
mov ecx, dword [0x6c1e9c]
cmp dword [esi + 8], edi
je 0x435d47
mov dword [esi + 8], edi
call fcn.00407640
lea ecx, [ebp - 0x64]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
call fcn.00407440
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0xd
call fcn.004b072f
lea ecx, [ebp - 0x3c]
call fcn.00401020
lea ecx, [ebp - 0x24]
call fcn.00401020
lea ecx, [ebp - 0x20]
call fcn.00401020
lea ecx, [ebp - 0x34]
call fcn.00401020
lea ecx, [ebp - 0x28]
call fcn.00401020
lea ecx, [ebp - 0x2c]
call fcn.00401020
lea ecx, [ebp - 0x38]
call fcn.00401020
lea ecx, [ebp - 0x30]
call fcn.00401020
jmp 0x4355a3
call fcn.00407640
lea ecx, [ebp - 0x64]
call fcn.00407440
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0xd
call fcn.004b072f
lea ecx, [ebp - 0x3c]
call fcn.00401020
lea ecx, [ebp - 0x24]
call fcn.00401020
lea ecx, [ebp - 0x20]
call fcn.00401020
lea ecx, [ebp - 0x34]
call fcn.00401020
lea ecx, [ebp - 0x28]
call fcn.00401020
lea ecx, [ebp - 0x2c]
call fcn.00401020
lea ecx, [ebp - 0x38]
call fcn.00401020
lea ecx, [ebp - 0x30]
call fcn.00401020
jmp 0x4355a3
lea edx, [ebp - 0x64]
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 0x16
call fcn.0041f510
mov esi, dword [ebp + 8]
mov byte [ebp - 4], 0x17
push dword [ebp + 0xc]
push dword [ebx]
push str.Unable_to_access_lock_file__s___s_
push esi
call fcn.00404520
mov byte [ebp - 4], 0x16
mov edx, dword [ebp + 0xc]
add edx, 0xfffffff0
add esp, 0x10
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x435e12
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x435e12
push ecx
mov ecx, esp
push 0x63bfdc
mov dword [ebp - 4], 0xf
call fcn.004021e0
push 0
push esi
push 0x254
push str.C:_amintegration_tools_setupishield_sldimdataDownloadData.cpp
push 1
push 1
xor ecx, ecx
call fcn.004051a0
mov ecx, eax
call fcn.004022e0
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x54]
add edx, 0xfffffff0
mov dword [ebp - 0x64], vtable.CFileException.0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x435e6c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0xd
call fcn.004b072f
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x3c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x435e9b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x435ebb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x435edb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x34]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x435efb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x435f1b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x2c]
jmp 0x43554c
cmp byte [ebp - 0x18], 0
je 0x435feb
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x34]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x435f51
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x435f71
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x435f91
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x38]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x435fb1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x435fcf
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x4c]
call fcn.00404e60
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x34]
push ecx
add eax, 0xfffffff0
mov dword [ebp + 0xc], esp
mov esi, esp
push eax
call fcn.004046f0
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x28]
add eax, 0xfffffff0
mov dword [ebp + 0x10], esp
mov esi, esp
push eax
call fcn.004046f0
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x2c]
add eax, 0xfffffff0
mov esi, esp
push eax
call fcn.004046f0
mov edx, dword [ebp + 8]
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov ecx, ebx
mov byte [ebp - 4], 7
call fcn.00436a90
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x34]
add edx, 0xfffffff0
mov bl, al
add esp, 0xc
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x436069
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x436089
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4360a9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x38]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4360c9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov esi, dword [ebp - 0x30]
add esi, 0xfffffff0
lea eax, [esi + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x4360e7
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
lea ecx, [ebp - 0x4c]
call fcn.00404e60
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret