Function at 0x401cd0
Capabilities:
Delete registry key

Disassembly:
mov eax, 0x1218
call fcn.004473e0
push ebx
push esi
push edi
push 0x8007
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
call sub.ATL.DLL_AtlAxWinInit
mov al, byte [0x4d6e30]
mov ecx, 0x3ff
mov byte [esp + 0x224], al
xor eax, eax
lea edi, [esp + 0x225]
mov edx, dword [esp + 0x1230]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 0xfff
jbe 0x401d2e
mov ecx, 0xfff
jmp 0x401d3a
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x228]
push edx
push ecx
call dword [sym.imp.MSVCRT.dll_strncpy]
lea edx, [esp + 0x230]
push edx
call fcn.0042eab0
add esp, 0x10
mov esi, str._ShowChannelOff
lea eax, [esp + 0x224]
xor ebx, ebx
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x401d8c
cmp cl, bl
je 0x401d88
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x401d8c
add eax, 2
add esi, 2
cmp cl, bl
jne 0x401d68
xor eax, eax
jmp 0x401d91
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x401db4
mov eax, dword [esp + 0x1228]
mov dword [0x4d5dd4], eax
call fcn.00405430
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x1218
ret 0x10
lea ecx, [esp + 0x224]
push str._UpdateUrlData
push ecx
call dword [sym.imp.SHLWAPI.dll_StrStrIA]
test eax, eax
je 0x401deb
mov edx, dword [esp + 0x1228]
mov dword [0x4d5dd4], edx
call fcn.00431c20
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x1218
ret 0x10
mov edi, dword [sym.imp.MSVCRT.dll_strncmp]
push 9
lea eax, [esp + 0x228]
push str._upfavcfg
push eax
call edi
add esp, 0xc
test eax, eax
jne 0x401e1c
call fcn.0040edc0
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x1218
ret 0x10
mov esi, str._install
lea eax, [esp + 0x224]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x401e4c
cmp cl, bl
je 0x401e48
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x401e4c
add eax, 2
add esi, 2
cmp cl, bl
jne 0x401e28
xor eax, eax
jmp 0x401e51
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x401e85
mov eax, dword [esp + 0x1228]
push eax
call fcn.004028c0
add esp, 4
call fcn.00413d50
push ebx
push ebx
push ebx
mov ecx, 0x4d765c
call fcn.004066d0
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x1218
ret 0x10
mov esi, str._install__m
lea eax, [esp + 0x224]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x401eb5
cmp cl, bl
je 0x401eb1
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x401eb5
add eax, 2
add esi, 2
cmp cl, bl
jne 0x401e91
xor eax, eax
jmp 0x401eba
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x401ef9
mov eax, dword [esp + 0x1228]
push eax
call fcn.004028c0
add esp, 4
mov ecx, 0x4d765c
call fcn.00407a20
call fcn.00413d50
push ebx
push 1
push ebx
mov ecx, 0x4d765c
call fcn.004066d0
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x1218
ret 0x10
mov esi, str._reinstall
lea eax, [esp + 0x224]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x401f29
cmp cl, bl
je 0x401f25
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x401f29
add eax, 2
add esi, 2
cmp cl, bl
jne 0x401f05
xor eax, eax
jmp 0x401f2e
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x401f6d
mov eax, dword [esp + 0x1228]
push eax
call fcn.004028c0
add esp, 4
mov ecx, 0x4d765c
call fcn.00407a20
call fcn.00413d50
push ebx
push ebx
push 1
mov ecx, 0x4d765c
call fcn.004066d0
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x1218
ret 0x10
mov esi, str._updateSetup
lea eax, [esp + 0x224]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x401f9d
cmp cl, bl
je 0x401f99
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x401f9d
add eax, 2
add esi, 2
cmp cl, bl
jne 0x401f79
xor eax, eax
jmp 0x401fa2
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x401fe1
mov eax, dword [esp + 0x1228]
push eax
call fcn.004028c0
add esp, 4
mov ecx, 0x4d765c
call fcn.00407a20
call fcn.00413d50
push ebx
push ebx
push 2
mov ecx, 0x4d765c
call fcn.004066d0
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x1218
ret 0x10
mov esi, str._uninstall
lea eax, [esp + 0x224]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x402011
cmp cl, bl
je 0x40200d
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x402011
add eax, 2
add esi, 2
cmp cl, bl
jne 0x401fed
xor eax, eax
jmp 0x402016
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x402056
mov eax, dword [esp + 0x1228]
push eax
call fcn.004028c0
add esp, 4
push str.SOFTWARE360Se
push SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHDeleteKeyW]
push ebx
push ebx
push 3
mov ecx, 0x4d765c
call fcn.004066d0
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x1218
ret 0x10
mov esi, str._uninstall__m
lea eax, [esp + 0x224]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x402086
cmp cl, bl
je 0x402082
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x402086
add eax, 2
add esi, 2
cmp cl, bl
jne 0x402062
xor eax, eax
jmp 0x40208b
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4020cc
mov eax, dword [esp + 0x1228]
push eax
call fcn.004028c0
add esp, 4
push str.SOFTWARE360Se
push SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHDeleteKeyW]
push ebx
push 1
push 3
mov ecx, 0x4d765c
call fcn.004066d0
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x1218
ret 0x10
mov esi, str._uninstall__m__sh
lea eax, [esp + 0x224]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4020fc
cmp cl, bl
je 0x4020f8
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4020fc
add eax, 2
add esi, 2
cmp cl, bl
jne 0x4020d8
xor eax, eax
jmp 0x402101
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x402143
mov eax, dword [esp + 0x1228]
push eax
call fcn.004028c0
add esp, 4
push str.SOFTWARE360Se
push SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHDeleteKeyW]
push 1
push 1
push 3
mov ecx, 0x4d765c
call fcn.004066d0
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x1218
ret 0x10
push 7
lea ecx, [esp + 0x228]
push str._update
push ecx
call edi
add esp, 0xc
test eax, eax
jne 0x402184
mov edx, dword [esp + 0x1228]
push edx
call fcn.004028c0
lea eax, [esp + 0x230]
push eax
call fcn.0042f680
add esp, 8
pop edi
pop esi
pop ebx
add esp, 0x1218
ret 0x10
push 8
lea ecx, [esp + 0x228]
push str._PostUse
push ecx
call edi
add esp, 0xc
test eax, eax
jne 0x4021c4
mov edx, dword [esp + 0x1228]
push edx
call fcn.004028c0
add esp, 4
mov ecx, 0x4d765c
call fcn.00406a80
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x1218
ret 0x10
mov esi, str._v3_update_only_update
lea eax, [esp + 0x224]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4021f4
cmp cl, bl
je 0x4021f0
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4021f4
add eax, 2
add esi, 2
cmp cl, bl
jne 0x4021d0
xor eax, eax
jmp 0x4021f9
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x40228b
mov ecx, dword [0x4dcb7c]
cmp ecx, ebx
jne 0x40222f
push 0x9e4
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
cmp eax, ebx
je 0x402225
mov ecx, eax
call fcn.00434760
jmp 0x402227
xor eax, eax
mov ecx, eax
mov dword [0x4dcb7c], ecx
push ebx
push ebx
call fcn.00435a50
push 1
lea ecx, [esp + 0x18]
mov al, byte [esp + 0x17]
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x18], al
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
call fcn.004454d0
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
cmp esi, edi
je 0x402274
push ebx
mov ecx, esi
call fcn.00403360
add esi, 4
cmp esi, edi
jne 0x402261
mov esi, dword [esp + 0x18]
push esi
call fcn.0044737a
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 0x1218
ret 0x10
mov esi, str._v3_update_and_reboot
lea eax, [esp + 0x224]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4022bb
cmp cl, bl
je 0x4022b7
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4022bb
add eax, 2
add esi, 2
cmp cl, bl
jne 0x402297
xor eax, eax
jmp 0x4022c0
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x402308
mov ecx, dword [0x4dcb7c]
cmp ecx, ebx
jne 0x4022f2
push 0x9e4
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
cmp eax, ebx
je 0x4022e8
mov ecx, eax
call fcn.00434760
jmp 0x4022ea
xor eax, eax
mov ecx, eax
mov dword [0x4dcb7c], ecx
push 1
push ebx
call fcn.00435a50
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x1218
ret 0x10
mov esi, 0x463328
lea eax, [esp + 0x224]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x402338
cmp cl, bl
je 0x402334
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x402338
add eax, 2
add esi, 2
cmp cl, bl
jne 0x402314
xor eax, eax
jmp 0x40233d
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x402385
mov ecx, dword [0x4dcb7c]
cmp ecx, ebx
jne 0x40236f
push 0x9e4
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
cmp eax, ebx
je 0x402365
mov ecx, eax
call fcn.00434760
jmp 0x402367
xor eax, eax
mov ecx, eax
mov dword [0x4dcb7c], ecx
push ebx
push 1
call fcn.00435a50
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x1218
ret 0x10
mov esi, 0x4632fc
lea eax, [esp + 0x224]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4023b5
cmp cl, bl
je 0x4023b1
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4023b5
add eax, 2
add esi, 2
cmp cl, bl
jne 0x402391
xor eax, eax
jmp 0x4023ba
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x402403
mov ecx, dword [0x4dcb7c]
cmp ecx, ebx
jne 0x4023ec
push 0x9e4
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
cmp eax, ebx
je 0x4023e2
mov ecx, eax
call fcn.00434760
jmp 0x4023e4
xor eax, eax
mov ecx, eax
mov dword [0x4dcb7c], ecx
push 1
push 1
call fcn.00435a50
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x1218
ret 0x10
mov esi, str._delv3cfg
lea eax, [esp + 0x224]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x402433
cmp cl, bl
je 0x40242f
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x402433
add eax, 2
add esi, 2
cmp cl, bl
jne 0x40240f
xor eax, eax
jmp 0x402438
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x402493
mov eax, dword [0x4dcb7c]
cmp eax, ebx
jne 0x40247e
push 0x9e4
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
cmp eax, ebx
je 0x402477
mov ecx, eax
call fcn.00434760
mov ecx, eax
mov dword [0x4dcb7c], eax
call fcn.00434ff0
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x1218
ret 0x10
xor eax, eax
mov dword [0x4dcb7c], eax
mov ecx, eax
call fcn.00434ff0
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x1218
ret 0x10
mov esi, dword [esp + 0x1228]
mov dword [0x472f88], 0x4632a8
push esi
push ebx
push 0x472f18
mov dword [0x472ed8], 0x472f18
mov dword [0x472f18], 0x84
mov dword [0x472f7c], 0x300
call fcn.00402db0
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push 0xc
mov dword [0x472f9c], eax
mov dword [0x472fa0], ebx
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
cmp eax, ebx
je 0x4024f7
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
jmp 0x4024f9
xor eax, eax
cmp eax, ebx
mov dword [0x472fa0], eax
je 0x402508
mov dword [0x472fa4], ebx
push esi
call fcn.004028c0
add esp, 4
mov ecx, 0x4d765c
call fcn.00407ba0
mov ecx, 0x4d765c
call fcn.00407830
call fcn.0043ce70
mov ecx, 0x4dbab0
call fcn.00427400
push ebx
push str.X360StartFrame
push ebx
push ebx
call dword [sym.imp.USER32.dll_FindWindowExW]
mov esi, eax
cmp esi, ebx
je 0x40256f
push esi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x40256f
push ebx
push ebx
push 0x541
push esi
call dword [sym.imp.USER32.dll_PostMessageW]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x1218
ret 0x10
lea eax, [esp + 0x224]
push str._manual
push eax
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
mov esi, 0x4632b8
test eax, eax
sete cl
mov byte [0x4d6e24], cl
lea eax, [esp + 0x224]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4025c0
cmp cl, bl
je 0x4025bc
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4025c0
add eax, 2
add esi, 2
cmp cl, bl
jne 0x40259c
xor eax, eax
jmp 0x4025c5
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
sete al
cmp al, bl
mov byte [0x4d6e25], al
jne 0x4028b1
call fcn.00414450
test eax, eax
jne 0x40273c
cmp byte [0x4d6e24], bl
je 0x4028b1
push 0xe8
call fcn.0040f770
mov esi, eax
mov eax, dword [0x463290]
add esp, 4
cmp esi, ebx
mov dword [esp + 0xc], eax
je 0x4026db
mov ecx, esi
shr ecx, 0x10
jne 0x4026ab
mov eax, dword [0x4d5dd4]
and esi, 0xffff
lea edx, [esp + 0x24]
mov edi, esi
push 0x100
push edx
push edi
push eax
call dword [sym.imp.USER32.dll_LoadStringW]
cmp eax, ebx
jne 0x402643
mov word [esp + 0x24], bx
mov ecx, 0x100
sub ecx, eax
cmp ecx, 1
jle 0x40265f
lea edx, [esp + 0x24]
lea ecx, [esp + 0xc]
push edx
call fcn.00403090
jmp 0x4026db
push 0x1ff
lea ecx, [esp + 0x10]
mov esi, 0x200
call fcn.00403130
cmp eax, ebx
je 0x40269e
push esi
push eax
push edi
call fcn.00402e40
mov ecx, esi
sub ecx, eax
cmp ecx, 1
jg 0x40269e
add esi, 0x100
lea ecx, [esp + 0xc]
lea edx, [esi - 1]
push edx
call fcn.00403130
cmp eax, ebx
jne 0x402676
push 0xffffffffffffffff
lea ecx, [esp + 0x10]
call fcn.004031c0
jmp 0x4026db
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
cmp edi, ebx
je 0x4026db
push edi
lea ecx, [esp + 0x10]
call fcn.00402e70
test eax, eax
je 0x4026db
lea ecx, [edi + edi]
mov edi, dword [esp + 0xc]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0xc]
push 0x40040
push 0xf
call fcn.0040f770
add esp, 4
push eax
push esi
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
mov edx, dword [0x463294]
mov eax, dword [esp + 0xc]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4028b1
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4028b1
mov edx, dword [esp + 0xc]
add edx, 0xfffffff4
push edx
call fcn.0044737a
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
add esp, 0x1218
ret 0x10
push ebx
call dword [sym.imp.ole32.dll_OleInitialize]
call fcn.0042faf0
mov eax, dword [0x472ed8]
add eax, 0x1c
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [0x472fa4]
cmp esi, ebx
je 0x402779
cmp dword [esi + 4], ebx
jle 0x402777
mov ecx, dword [esi]
mov edx, dword [ecx]
push edx
call dword [sym.imp.USER32.dll_DestroyWindow]
mov esi, dword [0x472fa4]
cmp esi, ebx
mov edi, dword [sym.imp.MSVCRT.dll_free]
je 0x40279e
mov eax, dword [esi]
cmp eax, ebx
je 0x40278f
push eax
call edi
add esp, 4
mov dword [esi], ebx
push esi
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
call fcn.0044737a
add esp, 4
mov eax, dword [0x472ed8]
mov dword [0x472fa4], ebx
add eax, 0x1c
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [0x472fa0]
cmp esi, ebx
je 0x4027e7
mov eax, dword [esi]
cmp eax, ebx
je 0x4027cb
push eax
call edi
add esp, 4
mov dword [esi], ebx
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x4027db
push eax
call edi
add esp, 4
mov dword [esi + 4], ebx
push esi
mov dword [esi + 8], ebx
call fcn.0044737a
add esp, 4
mov ecx, 0x472f18
test ecx, ecx
je 0x4028ab
mov esi, dword [0x472f28]
cmp esi, ebx
je 0x40282f
cmp dword [esi], ebx
je 0x40282f
mov edi, 0x64
mov eax, dword [esi + 0x10]
cmp eax, ebx
je 0x402814
mov edx, dword [eax]
push eax
call dword [edx + 8]
push ebx
mov dword [esi + 0x10], ebx
call dword [esi + 0x20]
cmp dword [0x472f18], edi
jne 0x402828
add esi, 0x1c
jmp 0x40282b
add esi, 0x24
cmp dword [esi], ebx
jne 0x402807
mov esi, dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
push 0x472f34
call esi
push 0x472f4c
call esi
push 0x472f64
call esi
mov esi, dword [0x472f98]
cmp esi, ebx
je 0x40286c
mov eax, dword [esi + 4]
push eax
call dword [esi]
mov edi, dword [esi + 8]
push esi
call fcn.0044737a
add esp, 4
cmp edi, ebx
mov esi, edi
jne 0x402854
cmp dword [0x472f30], ebx
je 0x4028ab
cmp byte [0x472f84], bl
je 0x4028ab
mov eax, dword [0x472f90]
mov edi, dword [sym.imp.KERNEL32.dll_HeapDestroy]
cmp eax, ebx
je 0x4028a3
xor esi, esi
mov ecx, dword [0x472f90]
mov edx, dword [ecx + esi*4]
push edx
call edi
mov eax, dword [0x472f8c]
inc esi
cmp esi, eax
jbe 0x40288d
mov eax, dword [0x472f30]
push eax
call edi
call dword [sym.imp.ole32.dll_OleUninitialize]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x1218
ret 0x10