Function at 0x40de90
Capabilities:
Check if file exists
Check mutex on windows
Copy file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x479fb5
mov eax, dword fs:[0]
push eax
sub esp, 0x304
mov eax, dword [0x49d22c]
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
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00451790
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push eax
push dword [0x4c5408]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
lea ecx, [ebp - 0x278]
call fcn.0040a310
mov eax, dword [ebp - 0x278]
add eax, 0xfffffff0
mov dword [ebp - 4], 0
push eax
call fcn.004041e0
add eax, 0x10
mov dword [ebp - 0x274], eax
push 0
mov byte [ebp - 4], 1
call fcn.00458fe5
push eax
call fcn.00458e7c
add esp, 0xc
call fcn.0043b4c0
mov ecx, eax
push 1
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x40e091
push 0x2c
push str.e:lib_commoncommon_helpercommonhelper.cpp
lea ecx, [ebp - 0x248]
mov dword [ebp - 0x238], eax
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], al
call fcn.00406620
push 3
push 0x47f9f4
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 2
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
call fcn.00406620
mov byte [ebp - 4], 3
call fcn.0043b4c0
mov edi, eax
lea ecx, [ebp - 0x310]
push 0x44
lea eax, [ebp - 0x248]
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.00402550
mov esi, eax
push str.change_file_name
push esi
mov byte [ebp - 4], 4
call fcn.00403970
mov edx, dword [edi]
add esp, 8
mov ecx, edi
push esi
call dword [edx + 0x1c]
lea ecx, [ebp - 0x310]
call fcn.00403aa0
mov edx, dword [ebp - 0x21c]
mov byte [ebp - 4], 2
cmp edx, 0x10
jb 0x40e038
mov ecx, dword [ebp - 0x230]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e02e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ec8f
push edx
push ecx
call fcn.0043c675
add esp, 8
mov edx, dword [ebp - 0x234]
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
mov byte [ebp - 4], 1
cmp edx, 0x10
jb 0x40e091
mov ecx, dword [ebp - 0x248]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e087
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ec94
push edx
push ecx
call fcn.0043c675
add esp, 8
call fcn.00417fd0
movzx eax, ax
push eax
call fcn.00417fd0
movzx eax, ax
push eax
call fcn.00417fd0
movzx eax, ax
push eax
call fcn.00417fd0
movzx eax, ax
push eax
lea eax, [ebp - 0x274]
push str._c_c_c_chelper.exe
push eax
call fcn.00404540
add esp, 0x18
lea eax, [ebp - 0x260]
push eax
call fcn.0040ba20
mov ecx, eax
call fcn.00408a10
cmp dword [eax + 0x14], 8
mov byte [ebp - 4], 5
jb 0x40e0e8
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x264]
call fcn.0040a310
mov edx, dword [ebp - 0x24c]
mov byte [ebp - 4], 7
cmp edx, 8
jb 0x40e138
mov ecx, dword [ebp - 0x260]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40e12e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ec99
push edx
push ecx
call fcn.0043c675
add esp, 8
mov esi, dword [ebp - 0x274]
xor eax, eax
push esi
mov word [ebp - 0x260], ax
lea eax, [ebp - 0x264]
push str.Utils_s
push eax
mov dword [ebp - 0x250], 0
mov dword [ebp - 0x24c], 7
call fcn.0040b120
add esp, 0xc
call fcn.0043b4c0
mov ecx, eax
push 1
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x40e2e0
push 0x2c
push str.e:lib_commoncommon_helpercommonhelper.cpp
lea ecx, [ebp - 0x248]
mov dword [ebp - 0x238], eax
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], al
call fcn.00406620
push 3
push 0x47f9f4
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 8
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
call fcn.00406620
mov byte [ebp - 4], 9
call fcn.0043b4c0
mov ebx, eax
lea ecx, [ebp - 0x310]
push 0x4c
lea eax, [ebp - 0x248]
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.00402550
mov edi, eax
push str.tend_file_full_path_:
push edi
mov byte [ebp - 4], 0xa
call fcn.00403970
mov ecx, dword [ebp - 0x264]
mov edx, 0x47f96c
test ecx, ecx
cmovne edx, ecx
push edx
push edi
call fcn.004015f0
mov eax, dword [ebx]
add esp, 0x10
mov ecx, ebx
push edi
call dword [eax + 0x1c]
lea ecx, [ebp - 0x310]
call fcn.00403aa0
mov edx, dword [ebp - 0x21c]
mov byte [ebp - 4], 8
cmp edx, 0x10
jb 0x40e287
mov ecx, dword [ebp - 0x230]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e27d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ec9e
push edx
push ecx
call fcn.0043c675
add esp, 8
mov edx, dword [ebp - 0x234]
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
mov byte [ebp - 4], 7
cmp edx, 0x10
jb 0x40e2e0
mov ecx, dword [ebp - 0x248]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e2d6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eca3
push edx
push ecx
call fcn.0043c675
add esp, 8
call fcn.0040b990
cmp dword [eax + 0x34], 0
jne 0x40e490
call fcn.0043b4c0
mov ecx, eax
push 1
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x40e3cb
push 0x2c
push str.e:lib_commoncommon_helpercommonhelper.cpp
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], al
call fcn.00406620
push 3
push 0x47f9f4
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 0xb
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
call fcn.00406620
mov byte [ebp - 4], 0xc
call fcn.0043b4c0
mov ebx, eax
lea ecx, [ebp - 0x310]
push 0x4e
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x248]
push eax
call fcn.00402550
mov edi, eax
push str.copy_file_with_changing_file_md5
push edi
mov byte [ebp - 4], 0xd
call fcn.00403970
mov edx, dword [ebx]
add esp, 8
mov ecx, ebx
push edi
call dword [edx + 0x1c]
lea ecx, [ebp - 0x310]
call fcn.00403aa0
lea ecx, [ebp - 0x248]
call fcn.00402f40
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 7
call fcn.00402f40
lea ecx, [ebp - 0x265]
call fcn.004041d0
mov edx, dword [ebp - 0x264]
mov ecx, 1
mov byte [ebp - 4], 0xe
mov eax, dword [edx - 8]
sub ecx, dword [edx - 4]
sub eax, 0x104
or eax, ecx
jge 0x40e40a
push 0x104
lea ecx, [ebp - 0x264]
call fcn.00404a50
mov edx, dword [ebp - 0x264]
cmp dword [edx - 8], 0x104
jl 0x40eca8
xor ecx, ecx
mov dword [edx - 0xc], 0x104
mov eax, dword [ebp - 0x264]
push ecx
push edx
push ecx
mov word [eax + 0x208], cx
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x265]
call fcn.00411d40
mov eax, dword [ebp - 0x264]
push dword [eax - 8]
push eax
call fcn.00454ecc
mov edx, eax
add esp, 8
test edx, edx
js 0x40eca8
mov ecx, dword [ebp - 0x264]
cmp edx, dword [ecx - 8]
jg 0x40eca8
mov dword [ecx - 0xc], edx
xor ecx, ecx
mov eax, dword [ebp - 0x264]
mov byte [ebp - 4], 7
mov word [eax + edx*2], cx
lea ecx, [ebp - 0x265]
call fcn.00405eb0
jmp 0x40e581
call fcn.0043b4c0
mov ecx, eax
push 1
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x40e56c
push 0x2c
push str.e:lib_commoncommon_helpercommonhelper.cpp
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], al
call fcn.00406620
push 3
push 0x47f9f4
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 0xf
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
call fcn.00406620
mov byte [ebp - 4], 0x10
call fcn.0043b4c0
mov ebx, eax
lea ecx, [ebp - 0x310]
push 0x54
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x248]
push eax
call fcn.00402550
mov edi, eax
push str.copy_file
push edi
mov byte [ebp - 4], 0x11
call fcn.00403970
mov edx, dword [ebx]
add esp, 8
mov ecx, ebx
push edi
call dword [edx + 0x1c]
lea ecx, [ebp - 0x310]
call fcn.00403aa0
lea ecx, [ebp - 0x248]
call fcn.00402f40
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 7
call fcn.00402f40
push 0
push dword [ebp - 0x264]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push dword [ebp - 0x264]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
or ebx, 0xffffffff
test eax, eax
jne 0x40e675
call fcn.0043b4c0
mov ecx, eax
push 1
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x40ec13
push 0x2c
push str.e:lib_commoncommon_helpercommonhelper.cpp
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], al
call fcn.00406620
push 3
push 0x47f9f4
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 0x12
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
call fcn.00406620
mov byte [ebp - 4], 0x13
call fcn.0043b4c0
mov ebx, eax
lea ecx, [ebp - 0x310]
push 0x5b
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x248]
push eax
call fcn.00402550
mov edi, eax
push str.copy_file_fail_
push edi
mov byte [ebp - 4], 0x14
call fcn.00403970
mov edx, dword [ebx]
add esp, 8
mov ecx, ebx
push edi
call dword [edx + 0x1c]
lea ecx, [ebp - 0x310]
call fcn.00403aa0
lea ecx, [ebp - 0x248]
call fcn.00402f40
lea ecx, [ebp - 0x230]
call fcn.00402f40
jmp 0x40ec10
mov ecx, dword [0x4c5390]
test ecx, ecx
jne 0x40e6dc
push 0x49d088
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [0x4c5390], 0
jne 0x40e6cb
push 0x80
call fcn.0043c645
add esp, 4
mov dword [ebp - 0x26c], eax
mov byte [ebp - 4], 0x15
test eax, eax
je 0x40e6b9
mov ecx, eax
call fcn.004082e0
mov ecx, eax
jmp 0x40e6bb
xor ecx, ecx
mov byte [ebp - 4], 7
xchg dword [ebp - 0x26c], eax
mov dword [0x4c5390], ecx
push 0x49d088
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [0x4c5390]
lea eax, [ebp - 0x248]
push eax
call fcn.004086f0
mov edi, eax
cmp dword [edi + 0x14], 8
mov byte [ebp - 4], 0x16
jb 0x40e6f6
mov edi, dword [edi]
call fcn.00404630
mov ecx, eax
test ecx, ecx
je 0x40ecb2
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x270], eax
push edi
lea ecx, [ebp - 0x270]
mov byte [ebp - 4], 0x17
call fcn.004040a0
test al, al
jne 0x40e750
test edi, edi
jne 0x40e72f
xor ecx, ecx
jmp 0x40e743
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40e734
sub ecx, edx
sar ecx, 1
push ecx
push edi
lea ecx, [ebp - 0x270]
call fcn.00404dc0
lea eax, [ebp - 0x270]
mov byte [ebp - 4], 0x18
push eax
call fcn.00417f80
mov edx, dword [ebp - 0x270]
add esp, 4
mov edi, eax
mov byte [ebp - 4], 0x16
add edx, 0xfffffff0
mov ecx, ebx
lock xadd dword [edx + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x40e786
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x234]
mov byte [ebp - 4], 7
cmp edx, 8
jb 0x40e7ca
mov ecx, dword [ebp - 0x248]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40e7c0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ecbc
push edx
push ecx
call fcn.0043c675
add esp, 8
test edi, edi
je 0x40e8af
call fcn.0043b4c0
mov ecx, eax
push 1
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x40ec13
push 0x2c
push str.e:lib_commoncommon_helpercommonhelper.cpp
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], al
call fcn.00406620
push 3
push 0x47f9f4
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 0x19
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
call fcn.00406620
mov byte [ebp - 4], 0x1a
call fcn.0043b4c0
mov ebx, eax
lea ecx, [ebp - 0x310]
push 0x62
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x248]
push eax
call fcn.00402550
mov edi, eax
push str.already_has_mutex_LDSMUTEX
push edi
mov byte [ebp - 4], 0x1b
call fcn.00403970
mov edx, dword [ebx]
add esp, 8
mov ecx, ebx
push edi
call dword [edx + 0x1c]
lea ecx, [ebp - 0x310]
call fcn.00403aa0
lea ecx, [ebp - 0x248]
call fcn.00402f40
lea ecx, [ebp - 0x230]
call fcn.00402f40
jmp 0x40ec10
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
push str.HELPERFUZZYMODE_BCB0A953_7579_48b3_84DC_79A9438F3D79
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebp - 0x26c], eax
test eax, eax
je 0x40ec13
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x40ea4a
call fcn.0043b4c0
mov ecx, eax
push 1
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x40ea3e
push 0x2c
push str.e:lib_commoncommon_helpercommonhelper.cpp
lea ecx, [ebp - 0x248]
mov dword [ebp - 0x238], eax
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], al
call fcn.00406620
push 3
push 0x47f9f4
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 0x1c
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
call fcn.00406620
mov byte [ebp - 4], 0x1d
call fcn.0043b4c0
mov ebx, eax
lea ecx, [ebp - 0x310]
push 0x6f
lea eax, [ebp - 0x248]
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.00402550
mov edi, eax
push str.error___:_already_has_mutex_HELPERFUZZYMODE.Plz_check_other_module
push edi
mov byte [ebp - 4], 0x1e
call fcn.00403970
mov edx, dword [ebx]
add esp, 8
mov ecx, ebx
push edi
call dword [edx + 0x1c]
lea ecx, [ebp - 0x310]
call fcn.00403aa0
mov edx, dword [ebp - 0x21c]
mov byte [ebp - 4], 0x1c
cmp edx, 0x10
jb 0x40e9e5
mov ecx, dword [ebp - 0x230]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e9db
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ecc1
push edx
push ecx
call fcn.0043c675
add esp, 8
mov edx, dword [ebp - 0x234]
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
mov byte [ebp - 4], 7
cmp edx, 0x10
jb 0x40ea3e
mov ecx, dword [ebp - 0x248]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40ea34
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ecc6
push edx
push ecx
call fcn.0043c675
add esp, 8
push dword [ebp - 0x26c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0
push 0
push 0x2710
push 1
push 1
push 0
push dword [ebp - 0x264]
call fcn.00418000
add esp, 0x1c
mov dword [ebp - 0x26c], eax
call fcn.0043b4c0
push 1
mov ecx, eax
mov edx, dword [eax]
mov edx, dword [edx + 8]
call edx
movzx ecx, al
sub ecx, 1
jne 0x40ec10
push 0x2c
mov dword [ebp - 0x238], ecx
mov byte [ebp - 0x248], cl
lea ecx, [ebp - 0x248]
push str.e:lib_commoncommon_helpercommonhelper.cpp
mov dword [ebp - 0x234], 0xf
call fcn.00406620
push 3
push 0x47f9f4
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 0x1f
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
call fcn.00406620
mov byte [ebp - 4], 0x20
call fcn.0043b4c0
mov ebx, eax
lea ecx, [ebp - 0x310]
push 0x77
lea eax, [ebp - 0x248]
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.00402550
mov edi, eax
push str.run_app_:
push edi
mov byte [ebp - 4], 0x21
call fcn.00403970
mov ecx, dword [ebp - 0x264]
mov eax, 0x47f96c
test ecx, ecx
cmovne eax, ecx
push eax
push edi
call fcn.004015f0
push str._ret_:
push edi
call fcn.00403970
add esp, 0x18
mov ecx, edi
push dword [ebp - 0x26c]
call fcn.00403610
mov eax, dword [ebx]
mov ecx, ebx
push edi
call dword [eax + 0x1c]
lea ecx, [ebp - 0x310]
call fcn.00403aa0
mov edx, dword [ebp - 0x21c]
mov byte [ebp - 4], 0x1f
cmp edx, 0x10
jb 0x40eb9c
mov ecx, dword [ebp - 0x230]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40eb92
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40eccb
push edx
push ecx
call fcn.0043c675
add esp, 8
mov edx, dword [ebp - 0x234]
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
mov byte [ebp - 4], 7
cmp edx, 0x10
jb 0x40ebf5
mov ecx, dword [ebp - 0x248]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40ebeb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ecd0
push edx
push ecx
call fcn.0043c675
add esp, 8
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
or ebx, 0xffffffff
mov edx, dword [ebp - 0x264]
mov eax, ebx
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40ec34
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x40ec4f
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x278]
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x40ec71
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
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.0043c91d
mov esp, ebp
pop ebp
ret
call fcn.00454cb9
call fcn.00454cb9
call fcn.00454cb9
call fcn.00454cb9
call fcn.00454cb9
push 0x80070057
call fcn.00404080
push 0x80004005
call fcn.00404080
call fcn.00454cb9
call fcn.00454cb9
call fcn.00454cb9
call fcn.00454cb9
call fcn.00454cb9
int3