Function at 0x40db30
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x58052b
mov eax, dword fs:[0]
push eax
sub esp, 0x2bc
mov eax, dword [0x636f58]
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 esi, ecx
mov eax, dword [esi]
push 0
push dword [eax]
call fcn.0055d424
add esp, 8
test eax, eax
jne 0x40e73e
mov eax, dword [esi]
mov ecx, dword [esi + 4]
push 0
push 0x8000
mov edx, dword [eax]
mov eax, dword [ecx]
push edx
call dword [eax + 0x24]
test eax, eax
je 0x40e73e
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
mov edi, eax
test edx, edx
jne 0x40dbb6
test edi, edi
jne 0x40dbb6
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
call dword [eax + 0x50]
lea eax, [edi + 1]
jmp 0x40e740
push edi
call fcn.00413757
push edi
mov ebx, eax
push 0
push ebx
call fcn.005557e0
mov ecx, dword [esi + 4]
add esp, 0x10
mov edx, dword [ecx]
push 0
push 0
push 0
call dword [edx + 0x2c]
mov ecx, dword [esi + 4]
lea edx, [ebp - 0x2b4]
push 2
push edx
mov eax, dword [ecx]
call dword [eax + 0x38]
mov eax, 0xfeff
cmp word [ebp - 0x2b4], ax
jne 0x40dc04
mov ecx, dword [esi + 4]
lea eax, [edi - 2]
push eax
push ebx
mov edx, dword [ecx]
call dword [edx + 0x38]
push ebx
lea ecx, [ebp - 0x2ac]
call fcn.00404370
mov dword [ebp - 4], 0
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
call dword [eax + 0x50]
push ebx
call fcn.00413752
add esp, 4
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x40dc5e
push str.SetProcessMitigationPolicy
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x40dc5e
push 4
lea ecx, [ebp - 0x2b0]
mov dword [ebp - 0x2b0], 1
push ecx
push 0x10
call eax
mov eax, dword [esi]
push dword [eax]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, dword [ebp - 0x2ac]
mov ebx, 1
mov edx, ebx
sub edx, dword [eax - 4]
mov ecx, dword [eax - 8]
or ecx, edx
jge 0x40dc92
push 0
lea ecx, [ebp - 0x2ac]
call fcn.004045e0
mov eax, dword [ebp - 0x2ac]
push eax
call fcn.00404a10
add esp, 4
lea ecx, [ebp - 0x230]
push str.c6c7702dbcbf4678
call fcn.00410910
mov byte [ebp - 4], 1
lea edx, [ebp - 0x230]
cmp dword [ebp - 0x21c], 0x10
lea ecx, [ebp - 0x290]
push dword [ebp - 0x220]
cmovae edx, dword [ebp - 0x230]
call fcn.00401e20
add esp, 4
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x2ac]
mov esi, dword [eax - 0xc]
test esi, esi
js 0x40e75c
mov ecx, dword [eax - 8]
mov edx, ebx
sub edx, dword [eax - 4]
sub ecx, esi
or ecx, edx
jge 0x40dd0c
push esi
lea ecx, [ebp - 0x2ac]
call fcn.004045e0
mov eax, dword [ebp - 0x2ac]
mov edx, eax
mov dword [ebp - 0x298], 0
xor ecx, ecx
mov dword [ebp - 0x294], 7
mov word [ebp - 0x2a8], cx
lea esi, [edx + 2]
nop
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x40dd30
sub edx, esi
lea ecx, [ebp - 0x2a8]
sar edx, 1
push edx
push eax
call fcn.00402ed0
lea edx, [ebp - 0x2a8]
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x278]
call fcn.00401d30
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x294]
cmp edx, 8
jb 0x40dda5
mov ecx, dword [ebp - 0x2a8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40dd9b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e766
push edx
push ecx
call fcn.0054d506
add esp, 8
xor eax, eax
mov dword [ebp - 0x298], 0
mov word [ebp - 0x2a8], ax
lea ecx, [ebp - 0x260]
lea eax, [ebp - 0x278]
mov dword [ebp - 0x294], 7
push eax
lea eax, [ebp - 0x290]
push eax
call fcn.00405580
add esp, 8
lea edx, [ebp - 0x260]
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x248]
call fcn.00401c50
mov byte [ebp - 4], 7
lea eax, [ebp - 0x248]
cmp dword [ebp - 0x234], 8
lea ecx, [ebp - 0x2b4]
cmovae eax, dword [ebp - 0x248]
push eax
call fcn.00404370
mov byte [ebp - 4], 8
or edi, 0xffffffff
mov edx, dword [eax]
mov esi, dword [ebp - 0x2ac]
add esi, 0xfffffff0
lea ecx, [edx - 0x10]
cmp ecx, esi
je 0x40de82
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x40de6e
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x40de6e
call fcn.00403ec0
mov dword [ebp - 0x2b0], eax
mov ecx, edi
lock xadd dword [ebx], ecx
dec ecx
test ecx, ecx
jg 0x40de63
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2b0]
add eax, 0x10
mov dword [ebp - 0x2ac], eax
jmp 0x40de7d
push dword [edx - 0xc]
lea ecx, [ebp - 0x2ac]
push edx
call fcn.00404220
mov ebx, 1
mov byte [ebp - 4], 7
mov eax, edi
mov edx, dword [ebp - 0x2b4]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40dea3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x2ac]
mov edx, ebx
sub edx, dword [eax - 4]
mov ecx, dword [eax - 8]
or ecx, edx
jge 0x40dec8
push 0
lea ecx, [ebp - 0x2ac]
call fcn.004045e0
mov eax, dword [ebp - 0x2ac]
push eax
call fcn.00404a10
add esp, 4
lea ecx, [ebp - 0x2c4]
push 0x611bc8
call fcn.00404370
push 0x611bc8
lea ecx, [ebp - 0x2bc]
mov byte [ebp - 4], 9
call fcn.00404370
push 0x611bc8
lea ecx, [ebp - 0x2c0]
mov byte [ebp - 4], 0xa
call fcn.00404370
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x2ac]
cmp dword [eax - 0xc], 0
jge 0x40df1e
or ebx, 0xffffffff
jmp 0x40df41
push str.sessionid
push eax
call fcn.00554f4e
mov ebx, eax
add esp, 8
mov eax, dword [ebp - 0x2ac]
test ebx, ebx
jne 0x40df3d
or ebx, 0xffffffff
jmp 0x40df41
sub ebx, eax
sar ebx, 1
cmp dword [eax - 0xc], 0
jge 0x40df4c
or esi, 0xffffffff
jmp 0x40df6f
push str.strTempUpdaterPath
push eax
call fcn.00554f4e
mov esi, eax
add esp, 8
mov eax, dword [ebp - 0x2ac]
test esi, esi
jne 0x40df6b
or esi, 0xffffffff
jmp 0x40df6f
sub esi, eax
sar esi, 1
cmp dword [eax - 0xc], 0
jge 0x40df81
mov dword [ebp - 0x2b4], 0xffffffff
jmp 0x40dfad
push str.csCommandLine
push eax
call fcn.00554f4e
add esp, 8
test eax, eax
jne 0x40df9f
mov dword [ebp - 0x2b4], 0xffffffff
jmp 0x40dfad
sub eax, dword [ebp - 0x2ac]
sar eax, 1
mov dword [ebp - 0x2b4], eax
cmp ebx, 0xffffffff
jle 0x40e05c
cmp esi, ebx
jle 0x40e05c
lea eax, [esi - 0xa]
push eax
lea eax, [ebx + 0xa]
push eax
lea eax, [ebp - 0x2b8]
push eax
lea ecx, [ebp - 0x2ac]
call fcn.0040ea90
mov byte [ebp - 4], 0xc
mov edx, dword [eax]
mov ebx, dword [ebp - 0x2c0]
add ebx, 0xfffffff0
lea ecx, [edx - 0x10]
cmp ecx, ebx
je 0x40e03b
cmp dword [ebx + 0xc], 0
jl 0x40e02c
mov eax, dword [ecx]
cmp eax, dword [ebx]
jne 0x40e02c
call fcn.00403ec0
mov dword [ebp - 0x2b0], eax
lea edx, [ebx + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40e021
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2b0]
add eax, 0x10
mov dword [ebp - 0x2c0], eax
jmp 0x40e03b
push dword [edx - 0xc]
lea ecx, [ebp - 0x2c0]
push edx
call fcn.00404220
mov byte [ebp - 4], 0xb
mov eax, edi
mov edx, dword [ebp - 0x2b8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40e05c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp esi, 0xffffffff
jle 0x40e1b8
mov ebx, dword [ebp - 0x2b4]
cmp ebx, esi
jle 0x40e1b8
mov eax, ebx
lea ecx, [ebp - 0x2ac]
sub eax, esi
sub eax, 0x15
push eax
lea eax, [esi + 0x15]
push eax
lea eax, [ebp - 0x2b0]
push eax
call fcn.0040ea90
mov byte [ebp - 4], 0xd
mov edx, dword [eax]
mov esi, dword [ebp - 0x2c4]
add esi, 0xfffffff0
lea ecx, [edx - 0x10]
cmp ecx, esi
je 0x40e0f4
cmp dword [esi + 0xc], 0
jl 0x40e0e5
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x40e0e5
call fcn.00403ec0
mov dword [ebp - 0x2b8], eax
lea edx, [esi + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40e0da
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2b8]
add eax, 0x10
mov dword [ebp - 0x2c4], eax
jmp 0x40e0f4
push dword [edx - 0xc]
lea ecx, [ebp - 0x2c4]
push edx
call fcn.00404220
mov byte [ebp - 4], 0xb
mov eax, edi
mov edx, dword [ebp - 0x2b0]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40e115
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x2ac]
lea ecx, [ebx + 0x10]
mov eax, dword [eax - 0xc]
sub eax, ecx
push eax
push ecx
lea eax, [ebp - 0x2b8]
push eax
lea ecx, [ebp - 0x2ac]
call fcn.0040ea90
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x2b8]
mov ebx, dword [ebp - 0x2bc]
add ebx, 0xfffffff0
lea esi, [eax - 0x10]
cmp esi, ebx
je 0x40e1a0
cmp dword [ebx + 0xc], 0
jl 0x40e191
mov ecx, dword [esi]
cmp ecx, dword [ebx]
jne 0x40e191
mov ecx, esi
call fcn.00403ec0
mov dword [ebp - 0x2b0], eax
lea edx, [ebx + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40e186
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x2b0]
add eax, 0x10
mov dword [ebp - 0x2bc], eax
jmp 0x40e1a0
push dword [eax - 0xc]
lea ecx, [ebp - 0x2bc]
push eax
call fcn.00404220
mov byte [ebp - 4], 0xb
mov eax, edi
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x40e1b8
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x2c4]
cmp dword [eax - 0xc], 0
jle 0x40e693
mov ecx, dword [ebp - 0x2bc]
cmp dword [ecx - 0xc], 0
jle 0x40e693
push 0
push 0x80
push 3
push 0
push 1
push SysReAllocStringLen
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
mov dword [ebp - 0x2b0], ebx
cmp ebx, 0xffffffff
jne 0x40e20e
call fcn.0040ee40
push eax
call fcn.0040f0f0
add esp, 4
jmp 0x40e224
mov ecx, ebx
call fcn.0040d000
test al, al
jne 0x40e434
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [ebp - 4], 0xa
mov eax, edi
mov edx, dword [ebp - 0x2c0]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40e245
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 9
mov eax, edi
mov edx, dword [ebp - 0x2bc]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40e266
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 7
mov eax, edi
mov edx, dword [ebp - 0x2c4]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40e287
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x234]
cmp edx, 8
jb 0x40e2cb
mov ecx, dword [ebp - 0x248]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40e2c1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e76b
push edx
push ecx
call fcn.0054d506
add esp, 8
xor eax, eax
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x24c]
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 7
mov word [ebp - 0x248], ax
cmp edx, 0x10
jb 0x40e326
mov ecx, dword [ebp - 0x260]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e31c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e770
push edx
push ecx
call fcn.0054d506
add esp, 8
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x264]
mov dword [ebp - 0x250], 0
mov dword [ebp - 0x24c], 0xf
mov byte [ebp - 0x260], 0
cmp edx, 0x10
jb 0x40e37f
mov ecx, dword [ebp - 0x278]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e375
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e775
push edx
push ecx
call fcn.0054d506
add esp, 8
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x27c]
mov dword [ebp - 0x268], 0
mov dword [ebp - 0x264], 0xf
mov byte [ebp - 0x278], 0
cmp edx, 0x10
jb 0x40e3d8
mov ecx, dword [ebp - 0x290]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e3ce
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e77a
push edx
push ecx
call fcn.0054d506
add esp, 8
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x21c]
mov dword [ebp - 0x280], 0
mov dword [ebp - 0x27c], 0xf
mov byte [ebp - 0x290], 0
cmp edx, 0x10
jb 0x40e701
mov ecx, dword [ebp - 0x230]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e6f7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40e77f
jmp 0x40e6f7
mov esi, dword [ebp - 0x2c4]
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi - 4], 0
mov ecx, eax
lea eax, [esi - 4]
jl 0x40e45a
cmp ecx, dword [esi - 0x10]
jne 0x40e45a
lea ebx, [esi - 0x10]
lock inc dword [eax]
jmp 0x40e484
mov eax, dword [ecx]
push 2
push dword [esi - 0xc]
call dword [eax]
mov ebx, eax
test ebx, ebx
je 0x40e784
mov eax, dword [esi - 0xc]
lea ecx, [ebx + 0x10]
mov dword [ebx + 4], eax
mov edx, dword [esi - 0xc]
inc edx
push edx
push esi
call fcn.00404450
add esp, 8
lea esi, [ebx + 0x10]
mov dword [ebp - 0x2b4], esi
mov byte [ebp - 4], 0xf
mov ebx, dword [esi - 0xc]
test ebx, ebx
js 0x40e789
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, ebx
or eax, ecx
jge 0x40e4bf
push ebx
lea ecx, [ebp - 0x2b4]
call fcn.004045e0
mov esi, dword [ebp - 0x2b4]
lea eax, [ebx + 1]
push eax
push esi
call fcn.0055d735
add esp, 8
cmp ebx, dword [esi - 8]
jg 0x40e75c
xor eax, eax
mov dword [esi - 0xc], ebx
mov word [esi + ebx*2], ax
cmp dword [esi - 0xc], eax
jl 0x40e4fb
push str.foxitupdater.exe
push esi
call fcn.00554f4e
add esp, 8
test eax, eax
je 0x40e4fb
sub eax, esi
sar eax, 1
jns 0x40e569
cmp dword [esi - 0xc], 0
jl 0x40e65e
push str.foxitpdfreaderupdater.exe
push esi
call fcn.00554f4e
add esp, 8
test eax, eax
je 0x40e51d
sub eax, esi
sar eax, 1
jns 0x40e569
cmp dword [esi - 0xc], 0
jl 0x40e65e
push str.foxitpdfeditorupdater.exe
push esi
call fcn.00554f4e
add esp, 8
test eax, eax
je 0x40e53f
sub eax, esi
sar eax, 1
jns 0x40e569
cmp dword [esi - 0xc], 0
jl 0x40e65e
push str.activation.exe
push esi
call fcn.00554f4e
add esp, 8
test eax, eax
je 0x40e65e
sub eax, esi
sar eax, 1
js 0x40e65e
mov ebx, dword [ebp - 0x2b0]
lea eax, [ebp - 0x218]
push 0
push 0x104
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetFinalPathNameByHandleW]
push str.finalPath:
call fcn.00404a10
lea eax, [ebp - 0x218]
push eax
call fcn.00404a10
mov eax, dword [ebp - 0x2bc]
add esp, 8
mov edx, 1
sub edx, dword [eax - 4]
mov ecx, dword [eax - 8]
or ecx, edx
push 0x3e8
push 1
jge 0x40e5cc
push 0
lea ecx, [ebp - 0x2bc]
call fcn.004045e0
mov eax, dword [ebp - 0x2bc]
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x2b8], esp
push eax
call fcn.004029c0
sub esp, 0x18
mov byte [ebp - 4], 0x10
lea eax, [ebp - 0x218]
mov dword [ebp - 0x2b0], esp
mov ecx, esp
push eax
call fcn.004029c0
mov byte [ebp - 4], 0x11
mov edx, 1
mov eax, dword [ebp - 0x2c0]
sub edx, dword [eax - 4]
mov ecx, dword [eax - 8]
or ecx, edx
jge 0x40e624
push 0
lea ecx, [ebp - 0x2c0]
call fcn.004045e0
mov eax, dword [ebp - 0x2c0]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.004029c0
mov byte [ebp - 4], 0xf
call fcn.00411eb0
test eax, eax
je 0x40e648
push str.UserShellExecute_Success_
call fcn.00404a10
jmp 0x40e66e
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.UserShellExecute_FAILED:__d_
call fcn.00404a10
add esp, 8
jmp 0x40e671
push str.Not_foxit_updater
call fcn.00404a10
mov ebx, dword [ebp - 0x2b0]
add esp, 4
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [ebp - 4], 0xb
add esi, 0xfffffff0
mov eax, edi
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x40e693
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xa
mov eax, edi
mov edx, dword [ebp - 0x2c0]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40e6b4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 9
mov eax, edi
mov edx, dword [ebp - 0x2bc]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40e6d5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 7
mov eax, edi
mov edx, dword [ebp - 0x2c4]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40e287
jmp 0x40e27f
push edx
push ecx
call fcn.0054d506
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x2ac]
add edx, 0xfffffff0
mov byte [ebp - 0x230], 0
mov dword [ebp - 0x21c], 0xf
mov dword [ebp - 0x220], 0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x40e73e
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.0054d4f5
mov esp, ebp
pop ebp
ret
push 0x80070057
call fcn.00404570
call fcn.00559439
call fcn.00559439
call fcn.00559439
call fcn.00559439
call fcn.00559439
call fcn.00559439
call fcn.00404590
push 0x80070057
call fcn.00404570
int3