Function at 0x4b2e70
Capabilities:
Connect to wmi namespace via wbemlocator
Get hostname
Reference wmi statements

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe40
mov eax, dword [0x5322a8]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
lea eax, [ebp - 0xe30]
push eax
push 0x502118
push 1
xor esi, esi
push esi
push 0x5021e8
mov dword [ebp - 0xe30], esi
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x4b2f3c
mov eax, dword [ebp - 0xe30]
lea edx, [ebp - 0xe2c]
push edx
push esi
push esi
push esi
push esi
push esi
push esi
mov dword [ebp - 0xe2c], esi
mov ecx, dword [eax]
push 0x52619c
push eax
mov eax, dword [ecx + 0xc]
call eax
test eax, eax
js 0x4b2f2e
mov eax, dword [ebp - 0xe2c]
push esi
push esi
push 3
push 3
push esi
push esi
push 0xa
push eax
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
test eax, eax
mov eax, dword [ebp - 0xe2c]
js 0x4b2f26
lea edx, [ebp - 0xe34]
push edx
push esi
push 0x30
push 0x526c58
mov dword [ebp - 0xe34], esi
mov ecx, dword [eax]
push 0x526208
push eax
mov eax, dword [ecx + 0x50]
call eax
test eax, eax
jns 0x4b2f54
mov eax, dword [ebp - 0xe2c]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0xe30]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
call dword [sym.imp.ole32.dll_CoUninitialize]
xor eax, eax
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e3946
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0xe34]
mov dword [ebp - 0xe3c], esi
cmp eax, esi
je 0x4b3a7e
jmp 0x4b2f72
xor esi, esi
mov ecx, dword [eax]
mov edi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea edx, [ebp - 0xe3c]
push edx
lea edx, [ebp - 0xe14]
push edx
push 1
push 0xffffffffffffffff
push eax
mov eax, dword [ecx + 0x10]
call eax
cmp dword [ebp - 0xe3c], esi
je 0x4b3a78
push 0xfe
lea edx, [ebp - 0x406]
xor ecx, ecx
push esi
push edx
mov word [ebp - 0x408], cx
call fcn.004e7d90
mov eax, dword [ebp - 0xe14]
mov ecx, dword [eax]
add esp, 0xc
push esi
push esi
lea edx, [ebp - 0xe28]
push edx
push esi
push str.Name
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jne 0x4b3038
cmp word [ebp - 0xe28], 1
je 0x4b3038
mov eax, dword [ebp - 0xe20]
lea edx, [ebp - 0x408]
sub edx, eax
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
cmp cx, si
jne 0x4b2ff5
lea ecx, [ebp - 0x408]
push 0x7c
push ecx
call fcn.004e46a9
add esp, 8
test eax, eax
je 0x4b302f
lea edx, [ebp - 0x408]
push 0x7c
push edx
call fcn.004e46a9
add esp, 8
xor ecx, ecx
mov word [eax], cx
lea edx, [ebp - 0xe28]
push edx
call edi
push 0x3e
lea ecx, [ebp - 0x86]
xor eax, eax
push esi
push ecx
mov word [ebp - 0x88], ax
call fcn.004e7d90
mov eax, dword [ebp - 0xe14]
mov edx, dword [eax]
mov edx, dword [edx + 0x10]
add esp, 0xc
push esi
push esi
lea ecx, [ebp - 0xe28]
push ecx
push esi
push str.CSDVersion
push eax
call edx
test eax, eax
jne 0x4b30a8
cmp word [ebp - 0xe28], 1
je 0x4b30a8
mov eax, dword [ebp - 0xe20]
lea edx, [ebp - 0x88]
sub edx, eax
lea esp, [esp]
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
cmp cx, si
jne 0x4b3090
lea eax, [ebp - 0xe28]
push eax
call edi
push esi
xor ecx, ecx
xor eax, eax
push esi
mov word [ebp - 0x24], cx
lea ecx, [ebp - 0xe28]
push ecx
mov dword [ebp - 0x22], eax
mov dword [ebp - 0x1e], eax
mov dword [ebp - 0x1a], eax
mov word [ebp - 0x16], ax
mov eax, dword [ebp - 0xe14]
mov edx, dword [eax]
mov edx, dword [edx + 0x10]
push esi
push str.OSLanguage
push eax
call edx
test eax, eax
jne 0x4b3107
cmp word [ebp - 0xe28], 1
je 0x4b3107
movsx ecx, word [ebp - 0xe20]
push 0xa
lea eax, [ebp - 0x24]
push eax
push ecx
call fcn.004e45ff
add esp, 0xc
lea edx, [ebp - 0xe28]
push edx
call edi
push esi
xor eax, eax
push esi
lea edx, [ebp - 0xe28]
push edx
mov word [ebp - 0x14], ax
mov dword [ebp - 0x12], eax
mov dword [ebp - 0xe], eax
mov dword [ebp - 0xa], eax
mov word [ebp - 6], ax
mov eax, dword [ebp - 0xe14]
mov ecx, dword [eax]
push esi
push str.OSArchitecture
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jne 0x4b316a
cmp word [ebp - 0xe28], 1
je 0x4b316a
mov eax, dword [ebp - 0xe20]
lea edx, [ebp - 0x14]
sub edx, eax
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
cmp cx, si
jne 0x4b3150
lea ecx, [ebp - 0xe28]
push ecx
call edi
jmp 0x4b3184
xor eax, eax
lea esp, [esp]
movzx ecx, word [eax + str.32_bit]
mov word [ebp + eax - 0x14], cx
add eax, 2
cmp cx, si
jne 0x4b3170
xor eax, eax
push esi
xor edx, edx
push esi
mov word [ebp - 0x44], dx
lea edx, [ebp - 0xe28]
push edx
mov dword [ebp - 0x42], eax
mov dword [ebp - 0x3e], eax
mov dword [ebp - 0x3a], eax
mov dword [ebp - 0x36], eax
mov dword [ebp - 0x32], eax
mov dword [ebp - 0x2e], eax
mov dword [ebp - 0x2a], eax
mov word [ebp - 0x26], ax
mov eax, dword [ebp - 0xe14]
mov ecx, dword [eax]
push esi
push str.Version
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jne 0x4b31f8
cmp word [ebp - 0xe28], 1
je 0x4b31f8
mov eax, dword [ebp - 0xe20]
lea edx, [ebp - 0x44]
sub edx, eax
jmp 0x4b31e0
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
cmp cx, si
jne 0x4b31e0
lea ecx, [ebp - 0xe28]
push ecx
call edi
push 0x1fe
lea eax, [ebp - 0xc0e]
xor edx, edx
push esi
push eax
mov word [ebp - 0xc10], dx
call fcn.004e7d90
mov eax, dword [ebp - 0xe14]
mov ecx, dword [eax]
add esp, 0xc
push esi
push esi
lea edx, [ebp - 0xe28]
push edx
push esi
push str.SystemDirectory
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jne 0x4b3268
cmp word [ebp - 0xe28], 1
je 0x4b3268
mov eax, dword [ebp - 0xe20]
lea edx, [ebp - 0xc10]
sub edx, eax
nop
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
cmp cx, si
jne 0x4b3250
lea ecx, [ebp - 0xe28]
push ecx
call edi
push 0x7e
lea eax, [ebp - 0x106]
xor edx, edx
push esi
push eax
mov word [ebp - 0x108], dx
call fcn.004e7d90
mov eax, dword [ebp - 0xe14]
mov ecx, dword [eax]
add esp, 0xc
push esi
push esi
lea edx, [ebp - 0xe28]
push edx
push esi
push str.SerialNumber
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jne 0x4b32d8
cmp word [ebp - 0xe28], 1
je 0x4b32d8
mov eax, dword [ebp - 0xe20]
lea edx, [ebp - 0x108]
sub edx, eax
lea esp, [esp]
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
cmp cx, si
jne 0x4b32c0
lea ecx, [ebp - 0xe28]
push ecx
call edi
push 0x7e
lea eax, [ebp - 0x306]
xor edx, edx
push esi
push eax
mov word [ebp - 0x308], dx
call fcn.004e7d90
push 0x1fe
lea edx, [ebp - 0x806]
xor ecx, ecx
push esi
push edx
mov word [ebp - 0x808], cx
call fcn.004e7d90
lea eax, [ebp - 0x808]
push eax
call fcn.004d1bc0
add esp, 0x1c
test eax, eax
je 0x4b336f
lea eax, [ebp - 0x808]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x4b3327
sub eax, edx
lea edx, [ebp - 0x808]
sar eax, 1
xor ecx, ecx
push 9
push edx
mov word [ebp + eax*2 - 0x80c], cx
call fcn.004e4991
add eax, 2
lea edx, [ebp - 0x308]
add esp, 8
sub edx, eax
lea esp, [esp]
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
cmp cx, si
jne 0x4b3360
push 0xfe
lea ecx, [ebp - 0x606]
xor eax, eax
push esi
push ecx
mov word [ebp - 0x608], ax
call fcn.004e7d90
mov eax, dword [ebp - 0xe14]
mov edx, dword [eax]
mov edx, dword [edx + 0x10]
add esp, 0xc
push esi
push esi
lea ecx, [ebp - 0xe28]
push ecx
push esi
push str.RegisteredUser
push eax
call edx
test eax, eax
jne 0x4b33de
cmp word [ebp - 0xe28], 1
je 0x4b33de
mov eax, dword [ebp - 0xe20]
lea edx, [ebp - 0x608]
sub edx, eax
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
cmp cx, si
jne 0x4b33c6
lea eax, [ebp - 0xe28]
push eax
call edi
push 0x206
lea edx, [ebp - 0xa0e]
xor ecx, ecx
push esi
push edx
mov word [ebp - 0xa10], cx
call fcn.004e7d90
mov eax, dword [ebp - 0xe14]
mov ecx, dword [eax]
add esp, 0xc
push esi
push esi
lea edx, [ebp - 0xe28]
push edx
push esi
push str.Description
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jne 0x4b344d
cmp word [ebp - 0xe28], 1
je 0x4b344d
mov eax, dword [ebp - 0xe20]
lea edx, [ebp - 0xa10]
sub edx, eax
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
cmp cx, si
jne 0x4b3435
lea ecx, [ebp - 0xe28]
push ecx
call edi
push 0x7e
lea eax, [ebp - 0x186]
xor edx, edx
push esi
push eax
mov word [ebp - 0x188], dx
call fcn.004e7d90
mov eax, dword [ebp - 0xe14]
mov ecx, dword [eax]
add esp, 0xc
push esi
push esi
lea edx, [ebp - 0xe28]
push edx
push esi
push str.InstallDate
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jne 0x4b34b4
cmp word [ebp - 0xe28], 1
je 0x4b34b4
mov ecx, dword [ebp - 0xe20]
push 0xe
push ecx
lea edx, [ebp - 0x188]
push edx
call fcn.004e4726
add esp, 0xc
lea eax, [ebp - 0xe28]
push eax
call edi
push 0x7e
lea edx, [ebp - 0x206]
xor ecx, ecx
push esi
push edx
mov word [ebp - 0x208], cx
call fcn.004e7d90
mov eax, dword [ebp - 0xe14]
mov ecx, dword [eax]
add esp, 0xc
push esi
push esi
lea edx, [ebp - 0xe28]
push edx
push esi
push str.LocalDateTime
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jne 0x4b351b
cmp word [ebp - 0xe28], 1
je 0x4b351b
mov ecx, dword [ebp - 0xe20]
push 0xe
push ecx
lea edx, [ebp - 0x208]
push edx
call fcn.004e4726
add esp, 0xc
lea eax, [ebp - 0xe28]
push eax
call edi
push 0x7e
lea edx, [ebp - 0x286]
xor ecx, ecx
push esi
push edx
mov word [ebp - 0x288], cx
call fcn.004e7d90
mov eax, dword [ebp - 0xe14]
mov ecx, dword [eax]
add esp, 0xc
push esi
push esi
lea edx, [ebp - 0xe28]
push edx
push esi
push str.LastBootUpTime
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jne 0x4b3582
cmp word [ebp - 0xe28], 1
je 0x4b3582
mov ecx, dword [ebp - 0xe20]
push 0xe
push ecx
lea edx, [ebp - 0x288]
push edx
call fcn.004e4726
add esp, 0xc
lea eax, [ebp - 0xe28]
push eax
call edi
push 0xfe
lea edx, [ebp - 0x506]
xor ecx, ecx
push esi
push edx
mov word [ebp - 0x508], cx
call fcn.004e7d90
push 0x1fe
lea ecx, [ebp - 0xe0e]
xor eax, eax
push esi
push ecx
mov word [ebp - 0xe10], ax
call fcn.004e7d90
add esp, 0x18
lea edx, [ebp - 0xe38]
push edx
lea eax, [ebp - 0xe10]
push eax
mov dword [ebp - 0xe38], pe_nt_image_headers32
call dword [sym.imp.KERNEL32.dll_GetComputerNameW]
lea ecx, [ebp - 0xe38]
push ecx
lea edx, [ebp - 0x508]
push edx
lea eax, [ebp - 0xe10]
mov dword [ebp - 0xe38], 0x7f
call fcn.004a9950
lea eax, [ebp - 0x408]
mov edx, ebx
mov ecx, eax
add esp, 8
sub edx, ecx
jmp 0x4b3610
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
cmp cx, si
jne 0x4b3610
lea edi, [ebx - 2]
mov ax, word [edi + 2]
add edi, 2
cmp ax, si
jne 0x4b3622
mov edx, dword [0x51d454]
lea eax, [ebp - 0x88]
mov dword [edi], edx
mov edx, eax
mov edi, edi
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x4b3640
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
cmp cx, si
jne 0x4b3650
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4b3670
mov eax, dword [0x51d454]
mov dword [edi], eax
lea eax, [ebp - 0x24]
mov edx, eax
jmp 0x4b3690
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4b3690
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4b36a0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4b36c0
mov ecx, dword [0x51d454]
lea eax, [ebp - 0x14]
mov dword [edi], ecx
mov edx, eax
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4b36e0
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4b36f0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4b3710
mov edx, dword [0x51d454]
lea eax, [ebp - 0x44]
mov dword [edi], edx
mov edx, eax
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4b3730
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4b3740
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4b3760
mov eax, dword [0x51d454]
mov dword [edi], eax
lea eax, [ebp - 0xc10]
mov edx, eax
jmp 0x4b3780
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4b3780
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4b3790
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4b37b0
mov ecx, dword [0x51d454]
lea eax, [ebp - 0x108]
mov dword [edi], ecx
mov edx, eax
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4b37d0
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4b37e0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4b3800
mov edx, dword [0x51d454]
lea eax, [ebp - 0x308]
mov dword [edi], edx
mov edx, eax
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4b3820
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4b3830
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4b3850
mov eax, dword [0x51d454]
mov dword [edi], eax
lea eax, [ebp - 0x608]
mov edx, eax
jmp 0x4b3870
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4b3870
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4b3880
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4b38a0
mov ecx, dword [0x51d454]
lea eax, [ebp - 0xa10]
mov dword [edi], ecx
mov edx, eax
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4b38c0
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4b38d0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4b38f0
mov edx, dword [0x51d454]
lea eax, [ebp - 0x188]
mov dword [edi], edx
mov edx, eax
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4b3910
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4b3920
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4b3940
mov eax, dword [0x51d454]
mov dword [edi], eax
lea eax, [ebp - 0x208]
mov edx, eax
jmp 0x4b3960
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4b3960
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4b3970
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4b3990
mov ecx, dword [0x51d454]
lea eax, [ebp - 0x288]
mov dword [edi], ecx
mov edx, eax
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4b39b0
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4b39c0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4b39e0
mov edx, dword [0x51d454]
lea eax, [ebp - 0x508]
mov dword [edi], edx
mov edx, eax
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4b3a00
sub eax, edx
lea edi, [ebx - 2]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x4b3a10
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4b3a30
mov eax, dword [0x51d454]
mov dword [edi], eax
mov eax, ebx
lea edx, [eax + 2]
jmp 0x4b3a50
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4b3a50
sub eax, edx
sar eax, 1
mov ecx, 1
mov word [ebx + eax*2], cx
mov eax, dword [ebp - 0xe34]
test eax, eax
jne 0x4b2f70
jmp 0x4b3a7e
mov eax, dword [ebp - 0xe34]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, dword [ebp - 0xe2c]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0xe30]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
mov eax, 1
pop esi
call fcn.004e3946
mov esp, ebp
pop ebp
ret