Function at 0x42dd30
Capabilities:
Check if file exists
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49a342
mov eax, dword fs:[0]
push eax
sub esp, 0x278
mov eax, dword [0x4c17d0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x268], eax
test eax, eax
je 0x42e5e2
mov eax, dword [0x4ead14]
mov edx, dword [eax + 0xc]
mov ecx, 0x4ead14
call edx
lea ebx, [eax + 0x10]
mov dword [ebp - 0x26c], ebx
mov dword [ebp - 4], 0
mov eax, dword [ebx - 8]
mov ecx, 1
sub ecx, dword [ebx - 4]
mov esi, 0x400
sub eax, esi
or eax, ecx
mov edi, 2
mov dword [ebp - 0x260], edi
jge 0x42ddc2
mov ecx, esi
lea eax, [ebp - 0x26c]
call fcn.00416890
mov ebx, dword [ebp - 0x26c]
cmp dword [ebx - 8], esi
jl 0x42e600
mov dword [ebx - 0xc], esi
xor eax, eax
lea esi, [ebp - 0x264]
mov word [ebx + 0x800], ax
mov byte [ebp - 0x259], 1
call fcn.00401be0
mov eax, dword [eax]
push str.config.ini
push eax
push ebx
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
mov eax, dword [ebp - 0x264]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42de1a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push ebx
call esi
test eax, eax
jne 0x42de7f
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x400
push ebx
push eax
call edi
push ebx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push 0x4aba00
push ebx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push ebx
call esi
test eax, eax
jne 0x42de79
push 0x400
push ebx
push eax
call edi
push ebx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push str...config.ini
push ebx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push ebx
call esi
test eax, eax
jne 0x42de79
mov byte [ebp - 0x259], al
mov edi, dword [ebp - 0x260]
mov edx, dword [0x4ead14]
mov eax, dword [edx + 0xc]
mov ecx, 0x4ead14
call eax
lea ecx, [eax + 0x10]
mov dword [ebp - 0x258], ecx
mov byte [ebp - 4], 1
mov eax, dword [ecx - 8]
mov edx, 1
sub edx, dword [ecx - 4]
mov esi, 0x80
sub eax, esi
or eax, edx
jge 0x42dec5
mov ecx, esi
lea eax, [ebp - 0x258]
call fcn.00416890
mov ecx, dword [ebp - 0x258]
cmp dword [ecx - 8], esi
jl 0x42e600
mov dword [ecx - 0xc], esi
mov eax, dword [ebp - 0x258]
xor edx, edx
cmp byte [ebp - 0x259], 1
mov word [eax + 0x100], dx
jne 0x42df03
push ebx
push esi
push ecx
push 0x4a3cf0
push str.language
push 0x4aba2c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
jmp 0x42df16
push 2
push 0x4abdb4
lea ecx, [ebp - 0x258]
push ecx
call fcn.004168e0
lea edx, [ebp - 0x258]
push edx
call fcn.0040b150
push eax
call fcn.0040b1e0
mov eax, dword [ebp - 0x258]
push str.zh_tw
push eax
call fcn.0047a0bc
xor esi, esi
add esp, 8
cmp eax, esi
je 0x42e1b1
mov ecx, dword [ebp - 0x258]
push 0x4af3e0
push ecx
call fcn.0047a0bc
add esp, 8
cmp eax, esi
je 0x42e1b1
mov edx, dword [ebp - 0x258]
push str.zh_cn
push edx
call fcn.0047a0bc
add esp, 8
cmp eax, esi
je 0x42e1ad
lea eax, [ebp - 0x258]
push eax
mov ecx, 0x4af3e8
call fcn.00408ef0
test eax, eax
je 0x42e1ad
lea ecx, [ebp - 0x258]
push ecx
mov ecx, 0x4af3f0
call fcn.00408ef0
test eax, eax
je 0x42e1a6
lea edx, [ebp - 0x258]
push edx
mov ecx, 0x4abdb4
call fcn.00408ef0
test eax, eax
je 0x42e1a6
lea eax, [ebp - 0x258]
push eax
mov ecx, 0x4b042c
call fcn.00408ef0
test eax, eax
je 0x42e19f
lea ecx, [ebp - 0x258]
push ecx
mov ecx, 0x4af3f8
call fcn.00408ef0
test eax, eax
je 0x42e19f
lea edx, [ebp - 0x258]
push edx
mov ecx, str.pt_br
call fcn.00408ef0
test eax, eax
je 0x42e198
lea eax, [ebp - 0x258]
push eax
mov ecx, 0x4b0414
call fcn.00408ef0
test eax, eax
je 0x42e198
lea ecx, [ebp - 0x258]
push ecx
mov ecx, 0x4af40c
call fcn.00408ef0
test eax, eax
je 0x42e191
lea edx, [ebp - 0x258]
push edx
mov ecx, 0x4b041c
call fcn.00408ef0
test eax, eax
je 0x42e191
lea eax, [ebp - 0x258]
push eax
mov ecx, 0x4b0424
call fcn.00408ef0
test eax, eax
je 0x42e18a
lea ecx, [ebp - 0x258]
push ecx
mov ecx, 0x4af41c
call fcn.00408ef0
test eax, eax
je 0x42e18a
lea edx, [ebp - 0x258]
push edx
mov ecx, 0x4b03f4
call fcn.00408ef0
test eax, eax
jne 0x42e0ae
lea edi, [esi + 0xb]
jmp 0x42e1b6
lea eax, [ebp - 0x258]
push eax
mov ecx, 0x4b03fc
call fcn.00408ef0
test eax, eax
jne 0x42e0cb
lea edi, [eax + 0xc]
jmp 0x42e1b6
lea ecx, [ebp - 0x258]
push ecx
mov ecx, 0x4af424
call fcn.00408ef0
test eax, eax
jne 0x42e0e8
lea edi, [eax + 0xd]
jmp 0x42e1b6
lea edx, [ebp - 0x258]
push edx
mov ecx, 0x4af42c
call fcn.00408ef0
test eax, eax
jne 0x42e105
lea edi, [eax + 0xe]
jmp 0x42e1b6
lea eax, [ebp - 0x258]
push eax
mov ecx, 0x4b0434
call fcn.00408ef0
test eax, eax
jne 0x42e122
lea edi, [eax + 0xf]
jmp 0x42e1b6
lea ecx, [ebp - 0x258]
push ecx
mov ecx, 0x4b03ec
call fcn.00408ef0
test eax, eax
jne 0x42e13c
lea edi, [eax + 0x10]
jmp 0x42e1b6
lea edx, [ebp - 0x258]
push edx
mov ecx, 0x4b0434
call fcn.00408ef0
test eax, eax
jne 0x42e156
lea edi, [eax + 0xf]
jmp 0x42e1b6
lea eax, [ebp - 0x258]
push eax
mov ecx, 0x4b040c
call fcn.00408ef0
test eax, eax
jne 0x42e170
lea edi, [eax + 3]
jmp 0x42e1b6
lea ecx, [ebp - 0x258]
push ecx
mov ecx, 0x4b0404
call fcn.00408ef0
test eax, eax
jne 0x42e1b6
lea edi, [eax + 0x11]
jmp 0x42e1b6
mov edi, 8
jmp 0x42e1b6
mov edi, 9
jmp 0x42e1b6
mov edi, 0xa
jmp 0x42e1b6
mov edi, 7
jmp 0x42e1b6
mov edi, 2
jmp 0x42e1b6
xor edi, edi
jmp 0x42e1b6
mov edi, 1
mov eax, dword [ebx - 8]
push eax
push ebx
call fcn.0047863d
add esp, 8
cmp eax, esi
jl 0x42e600
cmp eax, dword [ebx - 8]
jg 0x42e600
mov dword [ebx - 0xc], eax
xor edx, edx
mov word [ebx + eax*2], dx
mov eax, dword [ebp - 0x258]
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.0047863d
add esp, 8
cmp eax, esi
jl 0x42e600
mov ecx, dword [ebp - 0x258]
cmp eax, dword [ecx - 8]
jg 0x42e600
mov dword [ecx - 0xc], eax
mov edx, dword [ebp - 0x258]
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, 7
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x224], esi
mov word [ebp - 0x234], cx
xor edx, edx
mov dword [ebp - 0x23c], eax
mov dword [ebp - 0x240], esi
mov word [ebp - 0x250], dx
mov byte [ebp - 4], 3
cmp edi, 0x12
ja case.0x42e250.4
jmp dword [edi*4 + 0x42e60c]
push 0x4af438
lea ecx, [ebp - 0x238]
call fcn.00409480
push 0x4af498
lea ecx, [ebp - 0x254]
call fcn.00409480
jmp 0x42e316
push 0x4af4a8
lea ecx, [ebp - 0x238]
call fcn.00409480
push 0x4af534
lea ecx, [ebp - 0x254]
call fcn.00409480
jmp 0x42e316
push str.360_Total_Security_files_have_been_damaged.__nPlease_reinstall_360_Total_Security_and_scan_for_viruses.__nDamaged_documents:
jmp 0x42e281
push 0x4af658
jmp 0x42e281
push str.Os_arquivos_do_360_Total_Security_foram_danificados.__nReinstale_o_360_Total_Security_e_fa
jmp 0x42e281
push str.360_Total_Security_dosyalar
jmp 0x42e281
push str.Los_archivos_de_360_Total_Security_han_sido_da
jmp 0x42e281
push 0x4afb58
jmp 0x42e281
push str.360_Total_Security_____.__n360_Total_Security___________.__n_:
jmp 0x42e281
push str.360_Total_Security
jmp 0x42e281
push 0x4afe18
jmp 0x42e281
push str.Les_fichiers_de_360_Total_Security_ont
jmp 0x42e281
push str.I_file_di_360_Total_Security_sono_stati_danneggiati._nReinstalla_360_Total_Security_e_avvia_una_scansione_dei_virus._nDocumenti_danneggiati:
jmp 0x42e281
push str.Pliki_aplikacji_360_Total_Security_zosta
jmp 0x42e281
push 0x7b
push str.360_Total_Security_files_have_been_damaged.__nPlease_reinstall_360_Total_Security_and_scan_for_viruses.__nDamaged_documents:
lea ecx, [ebp - 0x238]
call fcn.00409380
push 0x12
push 0x4af534
lea ecx, [ebp - 0x254]
call fcn.00409380
mov edi, dword [ebp - 0x268]
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x42e321
sub eax, edx
sar eax, 1
push eax
push edi
lea eax, [ebp - 0x238]
call fcn.0040b400
mov edi, dword [ebp - 0x234]
mov eax, 8
cmp dword [ebp - 0x220], eax
jae 0x42e356
lea edi, [ebp - 0x234]
mov esi, dword [ebp - 0x250]
cmp dword [ebp - 0x23c], eax
jae 0x42e36a
lea esi, [ebp - 0x250]
push 0x14
push esi
push edi
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
mov byte [ebp - 0x259], 0
cmp eax, 6
je 0x42e39b
test eax, eax
jne 0x42e3a7
push 0x14
push esi
push edi
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
jne 0x42e3a7
call fcn.0042e660
mov byte [ebp - 0x259], 1
push ecx
mov eax, esp
mov dword [ebp - 0x264], esp
push eax
mov ecx, str.UserExperience
mov dword [ebp - 0x260], 1
lea esi, [ebp - 0x260]
xor edi, edi
call fcn.00416680
push ecx
mov ecx, esp
mov dword [ebp - 0x270], esp
push ecx
mov ecx, str.SOFTWARE360TotalSecurityExperience
mov byte [ebp - 4], 4
call fcn.00416680
push reloc.OLEAUT32.dll_SysReAllocString
lea edx, [ebp - 0x280]
push edx
mov ecx, edi
mov byte [ebp - 4], 3
call fcn.00415fe0
push eax
call fcn.00414920
mov eax, dword [ebp - 0x278]
add eax, 0xfffffff0
add esp, 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e427
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x27c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e449
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [ebp - 0x260], 0
je 0x42e530
xor ecx, ecx
push 0x206
push ecx
lea edx, [ebp - 0x21a]
push edx
mov word [ebp - 0x21c], cx
call fcn.0047e260
mov eax, dword [ebp - 0x268]
push 0xffffffffffffffff
push eax
lea ecx, [ebp - 0x21c]
push 0x104
push ecx
call fcn.00479ed8
add esp, 0x1c
lea edx, [ebp - 0x21c]
push edx
call dword [sym.imp.SHLWAPI.dll_PathStripPathW]
xor eax, eax
cmp ax, word [ebp - 0x21c]
je 0x42e530
mov edx, dword [0x4ead14]
mov eax, dword [edx + 0xc]
mov ecx, 0x4ead14
call eax
add eax, 0x10
mov dword [ebp - 0x260], eax
cmp byte [ebp - 0x259], 0
mov byte [ebp - 4], 5
mov eax, 0x4b02e4
jne 0x42e4da
mov eax, 0x4b02e8
mov ecx, dword [0x4edcd8]
mov edx, dword [0x4edcd4]
push ecx
mov ecx, dword [0x4edcd0]
push edx
mov edx, dword [0x4edccc]
push ecx
mov ecx, dword [0x4edcc4]
push edx
push ecx
push eax
mov eax, dword [0x4edd40]
lea edx, [ebp - 0x21c]
push edx
push eax
push str._snosign.htm_f_sre_smid_sver_slan_sos_sch_s
lea edi, [ebp - 0x260]
call fcn.00416250
mov eax, dword [ebp - 0x260]
add esp, 0x24
call fcn.004506c0
mov ecx, edi
call fcn.00416a70
mov edi, 8
cmp dword [ebp - 0x23c], edi
jb 0x42e54c
mov ecx, dword [ebp - 0x250]
push ecx
call fcn.00477b12
add esp, 4
xor edx, edx
mov esi, 7
mov dword [ebp - 0x23c], esi
mov dword [ebp - 0x240], 0
mov word [ebp - 0x250], dx
cmp dword [ebp - 0x220], edi
jb 0x42e581
mov eax, dword [ebp - 0x234]
push eax
call fcn.00477b12
add esp, 4
xor ecx, ecx
mov byte [ebp - 4], cl
mov eax, dword [ebp - 0x258]
add eax, 0xfffffff0
mov word [ebp - 0x234], cx
mov dword [ebp - 0x220], esi
mov dword [ebp - 0x224], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42e5bf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add ebx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e5e2
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00477b1d
mov esp, ebp
pop ebp
ret 4
push 0x80070057
call fcn.00416a90
mov edi, edi
jl 0x42e5f0
inc edx
add byte [edi - 0x1e], dl
inc edx
add byte [esi - 0x22ffbd1e], bl
loop 0x42e65d
add dl, dh
loop 0x42e661
add dl, dh
loop 0x42e665
add dl, dh
loop 0x42e669
add byte [ebp - 0x4cffbd1e], ah
loop 0x42e671
add byte [edx - 0x53ffbd1e], bh
loop 0x42e679
add cl, al
loop 0x42e67d
add al, cl
loop 0x42e681
add dl, dh
loop 0x42e685
add dl, dh
loop 0x42e689
add dh, dl
loop 0x42e68d
add bh, cl
loop 0x42e691
add ah, ah
loop 0x42e695
add bl, ch
loop 0x42e699
add ah, cl
int3
int3
mov ebp, esp
push 0xffffffffffffffff
push 0x49a2e0
mov eax, dword fs:[0]
push eax
add byte [ecx], ah
add byte [eax], al
add byte [eax - 0x7d], dl
in al, dx
adc al, 0x53
sub esp, 0x14
push ebx
push esi
push edi
mov eax, dword [0x4c17d0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [0x4edd98]
pop ss
dec esp
add byte [ebx], dh
lds edx, [eax - 0x73]
inc ebp
hlt
add byte [eax], al
add byte [ecx + 0x4edd98], ah
cwde
fisttp qword [esi]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x42e69a
sal byte [esi + eax + 0x66], 0x83
cmp byte [eax], al
cmp word [eax], 0
cmp dword [eax], 0
jne 0x42e6a1
pop es
mov dword [ebp - 0x1c], 0x4b0368
mov eax, dword [0x4ead14]
mov edx, dword [eax + 0xc]
mov ecx, 0x4ead14
call edx
lea ebx, [eax + 0x10]
mov dword [ebp - 0x14], ebx
mov dword [ebp - 4], 0
mov eax, dword [ebx - 8]
mov ecx, 1
sub ecx, dword [ebx - 4]
mov esi, 0x400
sub eax, esi
or eax, ecx
jge 0x42e6e0
mov ecx, esi
lea eax, [ebp - 0x14]
call fcn.00416890
mov ebx, dword [ebp - 0x14]
cmp dword [ebx - 8], esi
jl 0x42e967
mov dword [ebx - 0xc], esi
xor eax, eax
lea esi, [ebp - 0x20]
mov word [ebx + 0x800], ax
call fcn.00401be0
mov eax, dword [eax]
push str.config.ini
push eax
push ebx
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e72b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebx - 8]
push eax
push ebx
call fcn.0047863d
add esp, 8
test eax, eax
jl 0x42e967
cmp eax, dword [ebx - 8]
jg 0x42e967
mov dword [ebx - 0xc], eax
xor ecx, ecx
mov word [ebx + eax*2], cx
mov edx, dword [0x4ead14]
mov eax, dword [edx + 0xc]
mov ecx, 0x4ead14
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x18], esi
mov byte [ebp - 4], 1
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
mov edi, 0x80
sub eax, edi
or eax, ecx
jge 0x42e78f
mov ecx, edi
lea eax, [ebp - 0x18]
call fcn.00416890
mov esi, dword [ebp - 0x18]
cmp dword [esi - 8], edi
jl 0x42e967
push ebx
push edi
push esi
push 0x4a3cf0
push str.language
xor ecx, ecx
mov dword [esi - 0xc], edi
push 0x4aba2c
mov word [esi + 0x100], cx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [esi - 8]
push eax
push esi
call fcn.0047863d
add esp, 8
test eax, eax
jl 0x42e967
cmp eax, dword [esi - 8]
jg 0x42e967
xor edx, edx
mov dword [esi - 0xc], eax
mov word [esi + eax*2], dx
mov eax, dword [0x4ead14]
mov edx, dword [eax + 0xc]
mov ecx, 0x4ead14
call edx
lea edi, [eax + 0x10]
mov dword [ebp - 0x10], edi
mov byte [ebp - 4], 2
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
add eax, 0xffffff80
or eax, ecx
jge 0x42e81e
mov ecx, 0x80
lea eax, [ebp - 0x10]
call fcn.00416890
mov edi, dword [ebp - 0x10]
mov eax, 0x80
cmp dword [edi - 8], eax
jl 0x42e967
push ebx
push eax
push edi
push 0x4a3cf0
push str.channel
xor ecx, ecx
mov dword [edi - 0xc], eax
push 0x4aba2c
mov word [edi + 0x100], cx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [edi - 8]
push eax
push edi
call fcn.0047863d
add esp, 8
test eax, eax
jl 0x42e967
cmp eax, dword [edi - 8]
jg 0x42e967
mov dword [edi - 0xc], eax
xor edx, edx
mov word [edi + eax*2], dx
lea edi, [ebp - 0x10]
call fcn.004090a0
cmp dword [esi - 0xc], 0
je 0x42e8ef
mov edi, dword [ebp - 0x10]
cmp dword [edi - 0xc], 0
je 0x42e8ef
mov eax, dword [0x4ead14]
mov edx, dword [eax + 0xc]
mov ecx, 0x4ead14
call edx
add eax, 0x10
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
push edi
push esi
push eax
lea edi, [ebp - 0x20]
mov byte [ebp - 4], 3
call fcn.00416250
mov edi, dword [ebp - 0x20]
add esp, 0xc
push 5
push 0
push 0
push edi
push str.Open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea eax, [edi - 0x10]
mov byte [ebp - 4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e8ef
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e912
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add esi, 0xfffffff0
mov byte [ebp - 4], 0
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42e932
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
add ebx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42e955
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x80070057
call fcn.00416a90
int3