Function at 0x45da90
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x483522
mov eax, dword fs:[0]
push eax
sub esp, 0x234
mov eax, dword [0x4b700c]
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, dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_AllocConsole]
push 0
push str.ConsoleWindowClass
call dword [sym.imp.USER32.dll_FindWindowA]
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push ecx
mov ecx, esp
mov dword [ebp - 0x21c], esp
push dword [edi + 4]
call fcn.004026c0
mov dword [ebp - 4], 0
push ecx
mov esi, esp
mov dword [ebp - 0x220], esp
mov dword [ebp - 0x22c], esi
call fcn.00403a70
mov ecx, eax
test ecx, ecx
je 0x45e6fc
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 1
mov ecx, esi
push 0x49615c
call fcn.00402f20
test al, al
jne 0x45db3d
push 0x49615c
mov ecx, esi
call fcn.0045d070
mov byte [ebp - 4], 2
mov dword [ebp - 4], 0xffffffff
or ecx, 0xffffffff
call fcn.0045f800
add esp, 8
cmp dword [edi + 4], 0
je 0x45e6de
push 0x80
lea eax, [ebp - 0x210]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
call fcn.00403a70
mov ecx, eax
test ecx, ecx
je 0x45e706
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x23c], eax
mov dword [ebp - 4], 3
lea eax, [ebp - 0x210]
push eax
lea ecx, [ebp - 0x23c]
call fcn.00402f20
test al, al
jne 0x45dbd6
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x45dbb4
sub ecx, edx
lea eax, [ebp - 0x210]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x23c]
call fcn.004030c0
mov dword [ebp - 4], 4
mov esi, dword [ebp - 0x23c]
cmp dword [esi - 0xc], 0
jge 0x45dbee
or eax, 0xffffffff
jmp 0x45dc0a
push 0x496160
push esi
call dword [sym.imp.VCRUNTIME140.dll_wcsstr]
add esp, 8
test eax, eax
jne 0x45dc06
or eax, 0xffffffff
jmp 0x45dc0a
sub eax, esi
sar eax, 1
push dword [edi + 4]
shr eax, 0x1f
xor al, 1
mov dword [ebp - 0x214], eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoi]
add esi, 0xfffffff0
mov dword [ebp - 0x234], esp
mov edi, eax
mov dword [ebp - 0x21c], esp
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 0x10]
cmp dword [esi + 0xc], 0
mov ecx, eax
lea eax, [esi + 0xc]
jl 0x45dc4c
cmp ecx, dword [esi]
jne 0x45dc4c
mov ebx, esi
lock inc dword [eax]
jmp 0x45dc79
mov eax, dword [ecx]
push 2
push dword [esi + 4]
call dword [eax]
mov ebx, eax
test ebx, ebx
je 0x45e710
mov eax, dword [esi + 4]
lea ecx, [ebx + 0x10]
mov dword [ebx + 4], eax
lea eax, [esi + 0x10]
mov edx, dword [esi + 4]
inc edx
push edx
push eax
call fcn.004031c0
add esp, 8
mov ecx, dword [ebp - 0x234]
lea eax, [ebx + 0x10]
mov dword [ecx], eax
mov byte [ebp - 4], 6
push ecx
mov ecx, esp
mov dword [ebp - 0x220], esp
push str.FileName_:
call fcn.0045d100
mov byte [ebp - 4], 7
mov byte [ebp - 4], 4
mov ecx, edi
call fcn.0045f800
add esp, 8
or ebx, 0xffffffff
cmp byte [ebp - 0x214], 0
jne 0x45e625
cmp edi, 0x89
je 0x45dd29
cmp edi, 0x95
je 0x45dd29
cmp edi, 0x96
je 0x45dd29
cmp edi, 0xab
je 0x45dd29
cmp edi, 0xbb
je 0x45dd29
cmp edi, 0xbf
je 0x45dd29
cmp edi, 0xc0
je 0x45dd29
cmp edi, 0xc1
je 0x45dd29
cmp edi, 0xc5
je 0x45dd29
cmp edi, 0xda
je 0x45dd29
cmp edi, 0xe0
je 0x45dd29
cmp edi, 0xf5
je 0x45dd29
cmp edi, 0xfa
jne 0x45e625
call fcn.00464f20
cmp al, 1
jne 0x45e625
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea eax, [ebp - 0x210]
push eax
lea ecx, [ebp - 0x240]
call fcn.004026c0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x238]
push str.IAssistHelper64.exe
call fcn.0045d100
mov byte [ebp - 4], 9
lea eax, [ebp - 0x238]
push eax
lea edx, [ebp - 0x240]
lea ecx, [ebp - 0x228]
call fcn.0045c7c0
add esp, 4
mov byte [ebp - 4], 0xb
mov eax, ebx
mov edx, dword [ebp - 0x238]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45dda9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov dword [ebp - 0x214], esp
mov ecx, dword [ebp - 0x228]
add ecx, 0xfffffff0
mov dword [ebp - 0x21c], esp
mov dword [ebp - 0x230], ecx
mov ecx, dword [ecx]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, dword [ebp - 0x230]
mov edx, eax
cmp dword [ecx + 0xc], 0
lea eax, [ecx + 0xc]
mov dword [ebp - 0x234], eax
jl 0x45ddf4
cmp edx, dword [ecx]
jne 0x45ddf4
mov eax, ecx
mov ecx, dword [ebp - 0x234]
lock inc dword [ecx]
jmp 0x45de3b
mov eax, dword [edx]
push 2
push dword [ecx + 4]
mov ecx, edx
call dword [eax]
mov edx, eax
mov dword [ebp - 0x218], edx
test edx, edx
je 0x45e715
mov ecx, dword [ebp - 0x230]
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
lea eax, [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, dword [ebp - 0x218]
inc edx
push edx
push eax
add ecx, 0x10
call fcn.004031c0
mov eax, dword [ebp - 0x218]
add esp, 8
mov ecx, dword [ebp - 0x214]
add eax, 0x10
mov dword [ecx], eax
mov byte [ebp - 4], 0xe
mov byte [ebp - 4], 0xb
call fcn.00464350
mov dword [ebp - 0x214], esp
mov ecx, dword [ebp - 0x228]
add ecx, 0xfffffff0
mov byte [ebp - 0x221], al
mov dword [ebp - 0x218], ecx
mov dword [ebp - 0x21c], esp
mov ecx, dword [ecx]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, dword [ebp - 0x218]
mov edx, eax
cmp dword [ecx + 0xc], 0
lea eax, [ecx + 0xc]
mov dword [ebp - 0x234], eax
jl 0x45dea3
cmp edx, dword [ecx]
jne 0x45dea3
mov eax, ecx
mov ecx, dword [ebp - 0x234]
lock inc dword [ecx]
jmp 0x45deea
mov eax, dword [edx]
push 2
push dword [ecx + 4]
mov ecx, edx
call dword [eax]
mov edx, eax
mov dword [ebp - 0x230], edx
test edx, edx
je 0x45e71a
mov ecx, dword [ebp - 0x218]
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
lea eax, [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, dword [ebp - 0x230]
inc edx
push edx
push eax
add ecx, 0x10
call fcn.004031c0
mov eax, dword [ebp - 0x230]
add esp, 8
mov ecx, dword [ebp - 0x214]
add eax, 0x10
mov dword [ecx], eax
mov byte [ebp - 4], 0x10
mov byte [ebp - 4], 0xb
call fcn.00468920
add esp, 4
cmp byte [ebp - 0x221], 0
je 0x45e5a6
test al, al
je 0x45e5a6
push ecx
mov dword [ebp - 0x22c], esp
mov ecx, dword [ebp - 0x228]
add ecx, 0xfffffff0
mov dword [ebp - 0x21c], esp
mov dword [ebp - 0x218], ecx
mov ecx, dword [ecx]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, dword [ebp - 0x218]
mov edx, eax
cmp dword [ecx + 0xc], 0
lea eax, [ecx + 0xc]
mov dword [ebp - 0x214], eax
jl 0x45df65
cmp edx, dword [ecx]
jne 0x45df65
mov eax, ecx
mov ecx, dword [ebp - 0x214]
lock inc dword [ecx]
jmp 0x45dfac
mov eax, dword [edx]
push 2
push dword [ecx + 4]
mov ecx, edx
call dword [eax]
mov edx, eax
mov dword [ebp - 0x214], edx
test edx, edx
je 0x45e71f
mov ecx, dword [ebp - 0x218]
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
lea eax, [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, dword [ebp - 0x214]
inc edx
push edx
push eax
add ecx, 0x10
call fcn.004031c0
mov eax, dword [ebp - 0x214]
add esp, 8
mov ecx, dword [ebp - 0x22c]
add eax, 0x10
mov dword [ecx], eax
mov byte [ebp - 4], 0x12
push ecx
mov ecx, esp
mov dword [ebp - 0x220], esp
push str.IAssistHelper64_found_so_call_IAssistHelper64_and_exit_the_IAssistHelper
call fcn.0045d100
mov byte [ebp - 4], 0x13
mov byte [ebp - 4], 0xb
mov ecx, edi
call fcn.0045f800
add esp, 4
mov dword [ebp - 0x220], esp
mov ecx, dword [ebp - 0x228]
add ecx, 0xfffffff0
mov dword [ebp - 0x21c], esp
mov dword [ebp - 0x214], ecx
mov ecx, dword [ecx]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, dword [ebp - 0x214]
mov edx, eax
cmp dword [ecx + 0xc], 0
lea eax, [ecx + 0xc]
mov dword [ebp - 0x22c], eax
jl 0x45e02a
cmp edx, dword [ecx]
jne 0x45e02a
mov eax, ecx
mov ecx, dword [ebp - 0x22c]
lock inc dword [ecx]
jmp 0x45e071
mov eax, dword [edx]
push 2
push dword [ecx + 4]
mov ecx, edx
call dword [eax]
mov edx, eax
mov dword [ebp - 0x218], edx
test edx, edx
je 0x45e724
mov ecx, dword [ebp - 0x214]
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
lea eax, [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, dword [ebp - 0x218]
inc edx
push edx
push eax
add ecx, 0x10
call fcn.004031c0
mov eax, dword [ebp - 0x218]
add esp, 8
mov ecx, dword [ebp - 0x220]
add eax, 0x10
mov dword [ecx], eax
mov byte [ebp - 4], 0x15
push ecx
mov ecx, esp
mov dword [ebp - 0x220], esp
push str.This_iAssistHelper64_got_invoked
call fcn.0045d100
mov byte [ebp - 4], 0x16
mov byte [ebp - 4], 0xb
mov ecx, edi
call fcn.0045f800
add esp, 8
lea ecx, [ebp - 0x230]
call fcn.00402820
mov byte [ebp - 4], 0x17
lea eax, [ebp - 0x230]
push edi
push 0x487808
push eax
call fcn.0045d3c0
add esp, 0xc
lea ecx, [ebp - 0x214]
push 0x488164
call fcn.0045d100
mov byte [ebp - 4], 0x18
lea eax, [ebp - 0x214]
push eax
lea edx, [ebp - 0x228]
lea ecx, [ebp - 0x21c]
call fcn.0045c7c0
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x230]
push ecx
mov edx, eax
lea ecx, [ebp - 0x238]
call fcn.0045c7c0
add esp, 8
mov byte [ebp - 4], 0x1a
mov edx, dword [eax]
mov ecx, dword [ebp - 0x228]
add ecx, 0xfffffff0
mov dword [ebp - 0x218], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x220], eax
lea eax, [edx - 0x10]
cmp eax, ecx
je 0x45e19b
cmp dword [ecx + 0xc], 0
lea eax, [ecx + 0xc]
mov dword [ebp - 0x22c], eax
jl 0x45e18c
mov eax, dword [edx - 0x10]
cmp eax, dword [ecx]
jne 0x45e18c
mov ecx, dword [ebp - 0x220]
call fcn.00403060
mov edx, dword [ebp - 0x22c]
mov ecx, ebx
mov dword [ebp - 0x220], eax
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x45e181
mov eax, dword [ebp - 0x218]
push eax
mov ecx, dword [eax]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x220]
add eax, 0x10
mov dword [ebp - 0x228], eax
jmp 0x45e19b
push dword [edx - 0xc]
lea ecx, [ebp - 0x228]
push edx
call fcn.004030c0
mov byte [ebp - 4], 0x19
mov eax, ebx
mov edx, dword [ebp - 0x238]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45e1bc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x18
mov eax, ebx
mov edx, dword [ebp - 0x21c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45e1dd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x17
mov eax, ebx
mov edx, dword [ebp - 0x214]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45e1fe
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov dword [ebp - 0x220], esp
mov ecx, dword [ebp - 0x228]
add ecx, 0xfffffff0
mov dword [ebp - 0x22c], esp
mov dword [ebp - 0x214], ecx
mov ecx, dword [ecx]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, dword [ebp - 0x214]
mov edx, eax
cmp dword [ecx + 0xc], 0
lea eax, [ecx + 0xc]
mov dword [ebp - 0x21c], eax
jl 0x45e249
cmp edx, dword [ecx]
jne 0x45e249
mov eax, ecx
mov ecx, dword [ebp - 0x21c]
lock inc dword [ecx]
jmp 0x45e290
mov eax, dword [edx]
push 2
push dword [ecx + 4]
mov ecx, edx
call dword [eax]
mov edx, eax
mov dword [ebp - 0x218], edx
test edx, edx
je 0x45e729
mov ecx, dword [ebp - 0x214]
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
lea eax, [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, dword [ebp - 0x218]
inc edx
push edx
push eax
add ecx, 0x10
call fcn.004031c0
mov eax, dword [ebp - 0x218]
add esp, 8
mov ecx, dword [ebp - 0x220]
add eax, 0x10
mov dword [ecx], eax
mov byte [ebp - 4], 0x1f
push ecx
mov ecx, esp
mov dword [ebp - 0x21c], esp
push str.utils_execute_command
call fcn.0045d100
mov byte [ebp - 4], 0x20
mov byte [ebp - 4], 0x17
or ecx, 0xffffffff
call fcn.0045f800
add esp, 4
mov byte [ebp - 0x221], 1
mov dword [ebp - 0x220], esp
mov ecx, dword [ebp - 0x228]
add ecx, 0xfffffff0
mov dword [ebp - 0x22c], esp
mov dword [ebp - 0x214], ecx
mov ecx, dword [ecx]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, dword [ebp - 0x214]
mov edx, eax
cmp dword [ecx + 0xc], 0
lea eax, [ecx + 0xc]
mov dword [ebp - 0x21c], eax
jl 0x45e316
cmp edx, dword [ecx]
jne 0x45e316
mov eax, ecx
mov ecx, dword [ebp - 0x21c]
lock inc dword [ecx]
jmp 0x45e35d
mov eax, dword [edx]
push 2
push dword [ecx + 4]
mov ecx, edx
call dword [eax]
mov edx, eax
mov dword [ebp - 0x218], edx
test edx, edx
je 0x45e72e
mov ecx, dword [ebp - 0x214]
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
lea eax, [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, dword [ebp - 0x218]
inc edx
push edx
push eax
add ecx, 0x10
call fcn.004031c0
mov eax, dword [ebp - 0x218]
add esp, 8
mov ecx, dword [ebp - 0x220]
add eax, 0x10
mov dword [ecx], eax
mov byte [ebp - 4], 0x22
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x234]
mov dl, byte [ebp - 0x221]
call fcn.00460ee0
mov byte [ebp - 4], 0x23
mov dword [ebp - 0x220], esp
mov ecx, dword [ebp - 0x234]
add ecx, 0xfffffff0
mov dword [ebp - 0x22c], esp
mov dword [ebp - 0x214], ecx
mov ecx, dword [ecx]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, dword [ebp - 0x214]
mov edx, eax
cmp dword [ecx + 0xc], 0
lea eax, [ecx + 0xc]
mov dword [ebp - 0x21c], eax
jl 0x45e3cf
cmp edx, dword [ecx]
jne 0x45e3cf
mov eax, ecx
mov ecx, dword [ebp - 0x21c]
lock inc dword [ecx]
jmp 0x45e416
mov eax, dword [edx]
push 2
push dword [ecx + 4]
mov ecx, edx
call dword [eax]
mov edx, eax
mov dword [ebp - 0x218], edx
test edx, edx
je 0x45e733
mov ecx, dword [ebp - 0x214]
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
lea eax, [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, dword [ebp - 0x218]
inc edx
push edx
push eax
add ecx, 0x10
call fcn.004031c0
mov eax, dword [ebp - 0x218]
add esp, 8
mov ecx, dword [ebp - 0x220]
add eax, 0x10
mov dword [ecx], eax
mov byte [ebp - 4], 0x25
push ecx
mov ecx, esp
mov dword [ebp - 0x21c], esp
push str.utils_execute_command_after_result
call fcn.0045d100
mov byte [ebp - 4], 0x26
mov byte [ebp - 4], 0x23
or ecx, 0xffffffff
call fcn.0045f800
add esp, 4
mov dword [ebp - 0x220], esp
mov ecx, dword [ebp - 0x228]
add ecx, 0xfffffff0
mov dword [ebp - 0x22c], esp
mov dword [ebp - 0x214], ecx
mov ecx, dword [ecx]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov ecx, dword [ebp - 0x214]
mov edx, eax
cmp dword [ecx + 0xc], 0
lea eax, [ecx + 0xc]
mov dword [ebp - 0x21c], eax
jl 0x45e495
cmp edx, dword [ecx]
jne 0x45e495
mov eax, ecx
mov ecx, dword [ebp - 0x21c]
lock inc dword [ecx]
jmp 0x45e4dc
mov eax, dword [edx]
push 2
push dword [ecx + 4]
mov ecx, edx
call dword [eax]
mov edx, eax
mov dword [ebp - 0x218], edx
test edx, edx
je 0x45e738
mov ecx, dword [ebp - 0x214]
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
lea eax, [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, dword [ebp - 0x218]
inc edx
push edx
push eax
add ecx, 0x10
call fcn.004031c0
mov eax, dword [ebp - 0x218]
add esp, 8
mov ecx, dword [ebp - 0x220]
add eax, 0x10
mov dword [ecx], eax
mov byte [ebp - 4], 0x28
push ecx
mov ecx, esp
mov dword [ebp - 0x21c], esp
push str.This_iAssistHelper64_got_invoked_after_the_shell_execute_command
call fcn.0045d100
mov byte [ebp - 4], 0x29
mov byte [ebp - 4], 0x23
mov ecx, edi
call fcn.0045f800
add esp, 8
mov byte [ebp - 4], 0x17
mov eax, ebx
mov edx, dword [ebp - 0x234]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45e531
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xb
mov eax, ebx
mov edx, dword [ebp - 0x230]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45e552
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 8
mov eax, ebx
mov edx, dword [ebp - 0x228]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45e573
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 4
mov eax, ebx
mov edx, dword [ebp - 0x240]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45e594
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
lock xadd dword [esi + 0xc], ebx
dec ebx
jmp 0x45e6d2
push ecx
mov ecx, esp
mov dword [ebp - 0x21c], esp
push 0x488924
call fcn.0045d100
mov byte [ebp - 4], 0x2f
push ecx
mov ecx, esp
mov dword [ebp - 0x220], esp
push str.IAssistHelper64_not_found
call fcn.0045d100
mov byte [ebp - 4], 0x30
mov byte [ebp - 4], 0xb
or ecx, 0xffffffff
call fcn.0045f800
add esp, 8
mov byte [ebp - 4], 8
mov eax, ebx
mov edx, dword [ebp - 0x228]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45e604
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 4
mov eax, ebx
mov edx, dword [ebp - 0x240]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45e625
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
mov ecx, esp
mov dword [ebp - 0x22c], esp
push str.called
call fcn.0045d100
mov byte [ebp - 4], 0x33
push ecx
mov dword [ebp - 0x220], esp
mov ecx, dword [esi]
mov dword [ebp - 0x234], esp
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
mov ecx, eax
jl 0x45e666
cmp ecx, dword [esi]
jne 0x45e666
mov eax, esi
lock inc dword [edx]
jmp 0x45e69f
mov eax, dword [ecx]
push 2
push dword [esi + 4]
call dword [eax]
mov ecx, eax
mov dword [ebp - 0x21c], ecx
test ecx, ecx
je 0x45e73d
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
lea eax, [esi + 0x10]
mov edx, dword [esi + 4]
add ecx, 0x10
inc edx
push edx
push eax
call fcn.004031c0
mov eax, dword [ebp - 0x21c]
add esp, 8
mov ecx, dword [ebp - 0x220]
add eax, 0x10
mov dword [ecx], eax
mov byte [ebp - 4], 0x35
mov byte [ebp - 4], 4
mov ecx, edi
call fcn.0045f800
add esp, 8
mov ecx, edi
call fcn.00403ce0
mov dword [ebp - 4], 0xffffffff
lea eax, [esi + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x45e6de
mov ecx, dword [esi]
push esi
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.0046dda6
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00403850
push 0x80004005
call fcn.00403850
call fcn.004031b0
call fcn.004031b0
call fcn.004031b0
call fcn.004031b0
call fcn.004031b0
call fcn.004031b0
call fcn.004031b0
call fcn.004031b0
call fcn.004031b0
call fcn.004031b0
int3