Function at 0x438660
Capabilities:
Connect to wmi namespace via wbemlocator
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x88
mov esi, esp
mov edi, dword [ebp + 8]
push eax
sub esp, 0xc
mov dword [esi + 0x34], esp
push eax
mov dword [esi + 0x18], esp
sub esp, 0x18
mov ebx, esp
push eax
mov dword [esi + 0x24], esp
sub esp, 0xc
mov edx, esp
sub esp, 0x34
mov ecx, esp
push eax
mov dword [esi + 0xc], esp
push eax
mov dword [esi + 0x3c], esp
push eax
mov dword [esi + 0x14], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x38], eax
mov esp, eax
push eax
sub esp, 0x1c
mov dword [esi + 0x20], esp
push eax
mov eax, esp
mov dword [esi + 0x2c], edx
mov dword [esi + 8], ecx
mov dword [esi + 0x40], eax
mov eax, dword [0x44ba94]
mov dword [esi + 0x30], eax
mov dword [esi + 0x48], 0xc17fc32f
mov dword [esi + 0x4c], 0xcd53cf47
mov dword [esi + 0x50], 0xc961cb50
mov dword [esi + 0x54], 0xb57ab75b
mov dword [esi + 0x58], 0xb125b32a
mov dword [esi + 0x5c], 0xbd15bf2a
mov dword [esi + 0x60], 0xb9babb57
mov word [esi + 0x64], 0
mov byte [esi + 0x66], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x1e
ja 0x43873e
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [esi + edx + 0x48]
add ecx, 0xb81ed8b3
xor ecx, edx
mov dword [esi + 0x70], ecx
mov ecx, dword [esi + 0x70]
add cl, 0x89
mov edx, dword [esi + 4]
mov byte [esi + edx + 0x48], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x1f
jb case.default.0x438756
lea ecx, [esi + 4]
lea eax, [esi + 0x70]
lea edx, [esi + 0x48]
push ecx
push 8
push eax
push 0xd
push edx
push 0
call dword [esi + 0x30]
shr eax, 0x1f
jmp dword [eax*4 + 0x4496c0]
mov word [esi + 0x70], 0x43
mov word [esi + 0x72], 0x3a
mov eax, dword [case.0x438756.0]
nop
nop
jmp eax
mov dword [esi + 0x74], 0x5c
mov eax, dword [esi + 0x34]
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov eax, dword [esi + 0x18]
mov dword [eax], 0
push eax
push 0x443a88
push 1
push 0
push 0x443a98
call dword [sym.imp.ole32.dll_CoCreateInstance]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4496d8]
mov ebx, dword [esi + 0x40]
jmp dword [0x449740]
jmp dword [0x4496e4]
mov edx, dword [esi + 0x2c]
mov dword [edx], 0xb84ab64e
mov dword [edx + 4], 0xbcbdba77
mov word [edx + 8], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 9
ja 0x43882a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
add eax, 0x887fbf66
xor eax, ecx
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x48]
add al, 0x2f
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xa
jb 0x438800
push edx
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [esi + 0x2c], eax
mov edx, dword [esi + 8]
mov dword [edx], 0xbe00bc70
mov dword [edx + 4], 0xba04b80b
mov dword [edx + 8], 0xb619b478
mov dword [edx + 0xc], 0xb26bb057
mov dword [edx + 0x10], 0xae13ac53
mov dword [edx + 0x14], 0xaa1ea81d
mov dword [edx + 0x18], 0xa645a41e
mov dword [edx + 0x1c], 0xa238a008
mov dword [edx + 0x20], 0x9e4e9c35
mov dword [edx + 0x24], 0x9a3e984d
mov dword [edx + 0x28], 0x962c9459
mov dword [edx + 0x2c], 0x92229020
mov dword [edx + 0x30], 0x8c93
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x33
ja 0x4388ca
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
add eax, 0xe2c8543f
xor eax, ecx
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x48]
add al, 4
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x34
jb case.default.0x4388f2
push edx
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov edx, eax
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov ecx, dword [eax]
mov ebx, dword [esi + 0xc]
push ebx
push 0
push 0x30
mov dword [esi + 0x6c], edx
push edx
push dword [esi + 0x2c]
push eax
call dword [ecx + 0x50]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x449700]
mov eax, ebx
mov ebx, dword [esi + 0x14]
mov dword [ebx], 0
mov eax, dword [eax]
mov ecx, dword [eax]
push ebx
push dword [esi + 0x3c]
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 + 0x449708]
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov dword [esi + 0xc], eax
mov eax, dword [eax]
mov ebx, dword [eax + 8]
jmp dword [0x449734]
push dword [esi + 0x38]
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [esi + 0x3c]
mov eax, dword [eax]
mov ebx, dword [esi + 0x20]
mov dword [ebx], 0x26b82448
mov dword [ebx + 4], 0x22b820b3
mov dword [ebx + 8], 0x5ecb5c3e
mov dword [ebx + 0xc], 0x5ad4582f
mov dword [ebx + 0x10], 0x563554c2
mov dword [ebx + 0x14], 0x52c150ce
mov word [ebx + 0x18], 0x4c4d
mov dword [ebx + 0x1a], 0
mov word [ebx + 0x1e], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x1f
ja 0x4389dc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [ebx + edx]
add ecx, 0xe9362538
xor ecx, edx
mov dword [esi + 0x48], ecx
mov ecx, dword [esi + 0x48]
add cl, 0xe3
mov edx, dword [esi + 4]
mov byte [ebx + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x20
jb 0x4389b0
mov ecx, dword [eax]
push 0
push 0
mov ebx, dword [esi + 0x38]
push ebx
push 0
push dword [esi + 0x20]
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 + 0x449710]
push dword [ebx + 8]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
mov edx, dword [ebx + 8]
mov dword [esi + 0x10], eax
lea eax, [edx + eax*2]
mov dword [esi + 0x20], eax
movzx ecx, word [edx]
test cx, cx
mov dword [esi + 0x1c], edx
je 0x438a68
mov dword [esi + 8], 0
mov eax, edx
jmp 0x438a41
add dword [esi + 8], ebx
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
je 0x438a6f
cmp eax, dword [esi + 0x20]
jae 0x438a6f
movzx edx, cx
cmp edx, 0x800
mov ecx, 3
sbb ecx, 0
mov ebx, 1
cmp edx, 0x80
jb 0x438a32
mov ebx, ecx
jmp 0x438a32
mov dword [esi + 8], 0
mov ebx, dword [esi + 8]
lea eax, [ebx + 1]
mov dword [esi + 0x44], eax
push eax
call fcn.00409cc0
add esp, 4
mov dword [esi + 0x14], eax
test ebx, ebx
mov ecx, dword [esi + 0x1c]
jle 0x438b5b
mov eax, dword [esi + 0x14]
cmp dword [esi + 0x10], 0
jle 0x438b5b
mov eax, dword [esi + 0x14]
mov edx, dword [esi + 8]
add edx, eax
mov dword [esi + 0x68], edx
add dword [esi + 0x44], eax
add ecx, 2
movzx edx, word [ecx - 2]
test dx, dx
je 0x438b5b
cmp dx, 0x7f
ja 0x438acb
mov byte [eax], dl
mov dword [esi + 0x10], 1
jmp 0x438b45
mov dword [esi + 0x1c], ecx
mov ecx, eax
not ecx
add ecx, dword [esi + 0x44]
movzx ebx, dx
mov dword [esi + 0x28], ebx
cmp ecx, 2
jb 0x438b08
cmp dword [esi + 0x28], 0x7ff
ja 0x438b08
mov ecx, edx
shr ecx, 6
add cl, 0xc0
mov byte [eax], cl
and dl, 0x3f
or dl, 0x80
mov byte [eax + 1], dl
mov dword [esi + 0x10], 2
mov ecx, dword [esi + 0x1c]
jmp 0x438b45
mov dword [esi + 0x10], 0
cmp ecx, 3
mov ecx, dword [esi + 0x1c]
jb 0x438b45
mov ecx, dword [esi + 0x28]
shr ecx, 0xc
or cl, 0xe0
mov byte [eax], cl
mov ecx, dword [esi + 0x1c]
shr dword [esi + 0x28], 6
mov ebx, dword [esi + 0x28]
and bl, 0x3f
or bl, 0x80
mov byte [eax + 1], bl
and dl, 0x3f
or dl, 0x80
mov byte [eax + 2], dl
mov dword [esi + 0x10], 3
add eax, dword [esi + 0x10]
cmp eax, dword [esi + 0x68]
jae 0x438b5b
mov edx, ecx
add ecx, 2
cmp edx, dword [esi + 0x20]
jb 0x438aad
mov byte [eax], 0
xor ebx, ebx
xor eax, eax
cmp ebx, 4
setb al
jmp dword [eax*4 + 0x449718]
mov eax, ebx
and eax, 4
mov edx, ebx
or edx, 4
imul edx, eax
xor eax, 4
mov ecx, ebx
and ecx, 0xfffffffb
imul ecx, eax
add edx, dword [esi + 0x14]
mov eax, dword [ecx + edx]
mov ecx, dword [esi + 0x34]
mov dword [ecx + ebx*4], eax
mov ecx, dword [esi + 8]
mov eax, ecx
not eax
and eax, 4
and ecx, 0xfffffffb
sub ecx, eax
xor eax, eax
mov dword [esi + 8], ecx
cmp ecx, 4
setb al
jmp dword [eax*4 + 0x449720]
inc ebx
xor eax, eax
cmp ebx, 4
setb al
jmp dword [eax*4 + 0x449718]
mov ebx, dword [esi + 0x38]
jmp dword [0x449728]
push dword [esi + 0x14]
call fcn.00409cd0
add esp, 4
push ebx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esi + 0x3c]
mov eax, dword [eax]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov dword [esi + 0xc], eax
mov eax, dword [eax]
mov ebx, dword [eax + 8]
jmp dword [0x449734]
xor edx, edx
test eax, eax
setne dl
mov ecx, eax
jmp dword [edx*4 + 0x449770]
xor edx, edx
cmp dword [ebx + eax*4], 0
sete dl
mov ecx, eax
jmp dword [edx*4 + 0x449778]
lea ecx, [eax - 1]
imul edx, dword [ebx + ecx*4], 0x1a5845
lea ecx, [edi + 8]
add edx, 0xebde8a13
mov dword [ebx + eax*4], edx
mov byte [edi + 8], 0
mov dword [esi + 0x18], ecx
je 0x438c90
mov edi, ecx
cmp edx, 0x100
jb 0x438ca0
mov ebx, edx
nop
nop
nop
movzx ecx, dl
movzx ecx, word [ecx + ecx + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF]
mov word [edi - 2], cx
add edi, 0xfffffffe
shr ebx, 8
cmp edx, 0xffff
mov edx, ebx
ja 0x438c50
cmp ebx, 0xf
ja 0x438ca7
movzx ecx, byte [ebx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [edi - 1], cl
dec edi
jmp 0x438cb6
mov byte [edi + 7], 0x30
add edi, 7
jmp 0x438cb6
mov ebx, edx
cmp ebx, 0xf
jbe 0x438c74
movzx ecx, word [ebx + ebx + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF]
mov word [edi - 2], cx
add edi, 0xfffffffe
mov ebx, 0xffffffff
nop
nop
nop
nop
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne case.default.0x438ce0
mov edx, ebx
and edx, 0xfffffff7
not ebx
and ebx, 8
sub edx, ebx
xor ecx, ecx
cmp edx, 0
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x449780]
mov byte [edi + ebx - 1], 0x30
dec ebx
xor ecx, ecx
cmp edx, ebx
setne cl
jmp dword [ecx*4 + 0x449780]
inc eax
xor edx, edx
cmp eax, 4
setb dl
mov edi, dword [esi + 0x18]
mov ebx, dword [esi + 0x34]
jmp dword [edx*4 + 0x449768]
xor ecx, ecx
test eax, eax
setne cl
mov ebx, dword [esi + 0x34]
jmp dword [ecx*4 + 0x449750]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esi + 0x40]
jmp dword [0x44975c]
mov eax, dword [ecx]
mov dword [ebx], eax
mov eax, dword [ecx]
mov dword [ebx], eax
jmp dword [0x449764]
xor eax, eax
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0x449768]
mov dword [ebx], 0x3060326d
mov dword [ebx + 4], 0x3c613e6e
mov dword [ebx + 8], 0x38743a5f
mov dword [ebx + 0xc], 0x44164610
mov dword [ebx + 0x10], 0x407f4219
mov dword [ebx + 0x14], 0x4e4f
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x17
ja 0x438dd7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [ebx + ecx]
lea ecx, [eax + edx]
add eax, 0xb4
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0x3c927db4
mov dword [esi + 0x48], ecx
mov eax, dword [esi + 0x48]
add al, 0x79
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x18
jb 0x438da0
push ebx
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov ecx, dword [esi + 0x18]
mov ecx, dword [ecx]
mov edx, dword [ecx]
push dword [esi + 0x24]
push 0
push 0
push 0
push 0
push 0
push 0
push eax
push ecx
call dword [edx + 0xc]
mov dword [ebx], 0x3060326d
mov dword [ebx + 4], 0x3c613e6e
mov dword [ebx + 8], 0x38743a5f
mov dword [ebx + 0xc], 0x44164610
mov dword [ebx + 0x10], 0x407f4219
mov dword [ebx + 0x14], 0x4e4f
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x17
ja 0x438e77
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [ebx + ecx]
lea ecx, [eax + edx]
add eax, 0xb4
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0x3c927db4
mov dword [esi + 0x48], ecx
mov eax, dword [esi + 0x48]
add al, 0x79
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x18
jb 0x438e40
push ebx
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov edx, eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [eax]
push dword [esi + 0x24]
push 0
push 0
push 0
push 0
push 0
push 0
mov dword [esi + 0x30], edx
push edx
push eax
call dword [ecx + 0xc]
jmp dword [0x4496ec]
not eax
shr eax, 0x1f
mov ebx, dword [esi + 0x30]
jmp dword [eax*4 + 0x4496f0]
push 0
push 0
push 3
push 3
push 0
push 0
push 0xa
mov eax, dword [esi + 0x24]
push dword [eax]
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4496f8]
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push ebx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ebx, dword [esi + 0x40]
jmp dword [0x449740]
mov dword [ebx], 0
push 0xefddb36b
push dword [0x44ba8c]
call fcn.0043f320
add esp, 8
push 0
push 0
push 0
push 0
push ebx
push 0
push 0
lea ecx, [esi + 0x70]
push ecx
call eax
nop
nop
nop
nop
nop
nop
mov dword [ebx], 0
push 0xefddb36b
push dword [0x44ba8c]
call fcn.0043f320
add esp, 8
push 0
push 0
push 0
push 0
push ebx
push 0
push 0
lea ecx, [esi + 0x70]
push ecx
call eax
jmp dword [0x44974c]
mov ebx, dword [sym.imp.OLEAUT32.dll_SysStringLen]
push dword [esi + 0x2c]
call ebx
push dword [esi + 0x6c]
call ebx
mov ebx, dword [esi + 0x30]
jmp case.0x438756.14
push dword [esi + 0xc]
call ebx
push dword [esi + 0xc]
call ebx
jmp dword [0x44973c]
xor eax, eax
jmp 0x439150
mov ebp, dword [esp + 0x40]
push 0x400
call fcn.0043bfa0
add esp, 4
mov esi, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 8], 0xd3d0d1d6
mov dword [esp + 0xc], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 7
ja 0x43903c
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 8]
add ecx, 0xb3ba1ca3
xor ecx, edx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
mov edx, ecx
not edx
and edx, 0x76
and ecx, 0x89
sub ecx, edx
mov edx, dword [esp]
mov byte [esp + edx + 8], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 8
jb 0x439000
mov ecx, dword [esp + 8]
mov edx, dword [0x44ba98]
test edx, edx
mov dword [esp + 0x1c], esi
je case.default.0x439186
xor edi, edi
mov ebx, dword [0x44ba9c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x77a9e0c4
je 0x439070
inc edi
cmp edx, edi
jne 0x439060
jmp case.default.0x439186
mov edx, dword [ebx + edi*8 + 4]
cmp edx, ecx
jne 0x439158
not ecx
shr ecx, 0x1f
mov dword [esp + 0x14], 0
mov ebx, ebp
jmp dword [ecx*4 + 0x449790]
push esi
call fcn.0043c040
add esp, 4
mov eax, dword [esp + 0x18]
mov dword [esp + 8], 0xd3d0d1d6
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 7
ja 0x4390ff
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 8]
add ecx, 0xb3ba1ca3
xor ecx, edx
mov dword [esp], ecx
mov ecx, dword [esp]
mov edx, ecx
not edx
and edx, 0x76
and ecx, 0x89
sub ecx, edx
mov edx, dword [esp + 4]
mov byte [esp + edx + 8], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 8
jb 0x4390c0
mov ecx, dword [0x44ba98]
test ecx, ecx
je 0x43914a
mov edx, dword [esp + 8]
xor esi, esi
mov edi, dword [0x44ba9c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x625b6034
je 0x439130
inc esi
cmp ecx, esi
jne 0x439120
jmp 0x43914a
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x43914a
push eax
push 1
push dword [0x44baa0]
push ecx
call fcn.0043dc50
add esp, 0x10
mov eax, dword [esp + 0x14]
and al, 1
add esp, 0x28
pop esi
pop edi
pop ebx
pop ebp
ret
lea ecx, [esp + 0x20]
push 0x2f
push 0x400
push esi
push ecx
push eax
push 5
push dword [0x44baa0]
push edx
call fcn.0043dc50
add esp, 0x20
not eax
shr eax, 0x1f
mov dword [esp + 0x14], 0
mov ebx, ebp
jmp dword [eax*4 + 0x449790]
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x14], 0
cmp ecx, dword [esi]
setb al
xor ebp, ebp
jmp dword [eax*4 + 0x449798]
mov ebx, esi
lea ecx, [esp + 8]
call fcn.0043c4a0
inc ebp
xor eax, eax
mov esi, dword [esp + 0x1c]
cmp ebp, dword [esi]
setb al
jmp dword [eax*4 + 0x449798]
mov eax, dword [esi + ebp*4 + 4]
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
lea edi, [esp + 8]
mov ecx, edi
push 0
push eax
call fcn.0043c300
mov eax, ebx
neg eax
mov eax, 0
mov esi, ebx
mov ebx, dword [esp + 0x44]
sbb eax, ebx
setl al
movzx eax, al
shl eax, 0x14
or eax, 1
mov ecx, edi
push eax
call fcn.0043c320
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4497a0]
lea ecx, [esp + 8]
push ebx
push esi
push 0
call fcn.0043c580
test eax, eax
setns al
mov dword [esp + 0x14], eax
jmp case.0x439186.4
iretd
call fcn.0041a3f0
mov eax, dword [esp + 0x35c]
mov ax, word [eax]
mov dword [esp + 0x2a4], 1
mov ecx, dword [esp + 0x2a8]
mov edx, dword [esp + 0x2a4]
mov ecx, dword [ecx + edx*4]
jmp ecx
and bl, 1
movzx eax, bl
add esp, 0x344
pop esi
pop edi
pop ebx
pop ebp
ret
mov ax, word [ebp + 4]
xor ecx, ecx
sub ax, 0x5c
sete cl
mov dword [esp + 0x124], ecx
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x124]
mov eax, dword [eax + ecx*4]
mov esi, dword [esp + 0xc]
jmp eax
call fcn.0041a3f0
mov dword [esp + 0x94], 0
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x94]
mov eax, dword [eax + ecx*4]
jmp eax
mov esi, dword [esp + 0xc]
mov word [esi], 0x5c
add esi, 2
add ebp, 2
mov eax, dword [esp + 0x2ec]
mov ecx, dword [esp + 0x2f0]
mov eax, dword [ecx + eax*4]
mov ebx, ebp
jmp eax
add ebp, 4
mov eax, dword [esp + 0x224]
mov ecx, dword [esp + 0x228]
mov eax, dword [ecx + eax*4]
mov esi, dword [esp + 0xc]
jmp eax
mov eax, dword [esp + 0x234]
mov ecx, dword [esp + 0x238]
mov eax, dword [ecx + eax*4]
jmp eax
xor eax, eax
mov ecx, edi
sub ecx, 2
sete al
mov dword [esp + 0x2e4], eax
mov eax, dword [esp + 0x2e8]
mov ecx, dword [esp + 0x2e4]
mov eax, dword [eax + ecx*4]
jmp eax
mov al, byte [esp + 0x20]
mov byte [esp + 0x38], al
mov dword [esp], 0x1b221ba0
mov dword [esp + 4], 5
call fcn.00419ec0
mov ecx, eax
and ecx, 0x3a
shl ecx, 1
xor eax, 0x3a
add eax, ecx
xor eax, 1
xor al, 0xa1
mov byte [esp + 0x24], al
mov dword [esp], 0x1b221ba0
mov dword [esp + 4], 5
call fcn.00419ec0
xor al, 0xa1
mov byte [esp + 0x25], al
mov dword [esp], 0x1b221ba0
mov dword [esp + 4], 5
call fcn.00419ec0
mov ecx, eax
and ecx, 0x5c
shl ecx, 1
xor eax, 0x5c
add eax, ecx
xor eax, 3
xor al, 0xa1
mov byte [esp + 0x26], al
mov dword [esp], 0x1b221ba0
mov dword [esp + 4], 5
call fcn.00419ec0
xor eax, 2
xor al, 0xa1
mov byte [esp + 0x27], al
mov dword [esp], 0x1b221ba0
mov dword [esp + 4], 5
call fcn.00419ec0
xor eax, 5
xor al, 0xa1
mov byte [esp + 0x28], al
mov dword [esp], 0x1b221ba0
mov dword [esp + 4], 5
call fcn.00419ec0
xor eax, 4
xor al, 0xa1
mov byte [esp + 0x29], al
mov eax, 6
mov byte [esp + eax + 0x24], 0
add eax, 1
cmp eax, 0xa
jne 0x439cf0
mov eax, dword [esp + 0x1c4]
mov ecx, dword [esp + 0x1c8]
mov eax, dword [ecx + eax*4]
jmp eax
mov ax, word [ebp]
mov ecx, dword [esp + 0x2dc]
mov edx, dword [esp + 0x2e0]
mov ecx, dword [edx + ecx*4]
jmp ecx
mov al, byte [esp + 0x30]
mov byte [esp + 0x34], al
mov dword [esp], 0x46dfadb6
mov dword [esp + 4], 5
call fcn.00419ec0
add eax, 0x3a
xor eax, 0xb6
mov byte [esp + 0x3c], al
mov dword [esp], 0x46dfadb6
mov dword [esp + 4], 5
call fcn.00419ec0
xor eax, 0xb7
mov byte [esp + 0x3d], al
mov dword [esp], 0x46dfadb6
mov dword [esp + 4], 5
call fcn.00419ec0
add eax, 0x5c
xor eax, 0xb8
mov byte [esp + 0x3e], al
mov dword [esp], 0x46dfadb6
mov dword [esp + 4], 5
call fcn.00419ec0
xor eax, 0xb9
mov byte [esp + 0x3f], al
mov dword [esp], 0x46dfadb6
mov dword [esp + 4], 5
call fcn.00419ec0
xor eax, 0xba
mov byte [esp + 0x40], al
mov dword [esp], 0x46dfadb6
mov dword [esp + 4], 5
call fcn.00419ec0
xor eax, 0xbb
mov byte [esp + 0x41], al
mov eax, 6
mov byte [esp + eax + 0x3c], 0
add eax, 1
cmp eax, 0xc
jne 0x439de8
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
cmp eax, 0xc
jae 0x439e32
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [esp + ecx + 0x3c]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0043bf50
mov ecx, dword [esp + 0x14]
mov byte [esp + ecx + 0x3c], al
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
jmp 0x439dfd
mov edi, dword [esp + 0x35c]
add edi, 2
lea eax, [esp + 0x3c]
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.0043a910
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 0x274], ecx
mov eax, dword [esp + 0x278]
mov ecx, dword [esp + 0x274]
mov eax, dword [eax + ecx*4]
jmp eax
xor eax, eax
mov esi, dword [esp + 0xc]
mov ecx, esi
sub ecx, dword [esp + 0x35c]
seta al
mov dword [esp + 0x2b4], eax
mov eax, dword [esp + 0x2b8]
mov ecx, dword [esp + 0x2b4]
mov eax, dword [eax + ecx*4]
jmp eax
invalid
mov ax, word [ebx]
xor ecx, ecx
sub ax, 0x5c
sete cl
mov dword [esp + 0x194], ecx
mov eax, dword [esp + 0x198]
mov ecx, dword [esp + 0x194]
mov ecx, dword [eax + ecx*4]
xor eax, eax
jmp ecx
call fcn.0041a3f0
mov dword [esp + 0x304], 1
mov eax, dword [esp + 0x308]
mov ecx, dword [esp + 0x304]
mov eax, dword [eax + ecx*4]
jmp eax
mov ax, word [edi]
mov ecx, dword [esp + 0x164]
mov edx, dword [esp + 0x168]
mov ecx, dword [edx + ecx*4]
jmp ecx
call fcn.0041a3f0
mov ebx, ebp
add ebx, 4
mov dword [esp + 0xfc], 1
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0xfc]
mov eax, dword [eax + ecx*4]
jmp eax
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0xa
jae 0x439fd0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0x24]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0043bf80
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0x24], al
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
jmp 0x439f9b
mov edi, ebx
add edi, 2
mov dword [esp + 0x1b4], 1
mov eax, dword [esp + 0x1b8]
mov ecx, dword [esp + 0x1b4]
mov eax, dword [eax + ecx*4]
jmp eax
add edi, 0xfffffffe
mov eax, dword [esp + 0x134]
mov ecx, dword [esp + 0x138]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x35c]
mov ax, word [eax]
xor ecx, ecx
sub ax, 0x5c
sete cl
mov dword [esp + 0x26c], ecx
mov eax, dword [esp + 0x270]
mov ecx, dword [esp + 0x26c]
mov eax, dword [eax + ecx*4]
xor ebp, ebp
jmp eax
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x180]
mov eax, dword [ecx + eax*4]
jmp eax
mov dword [esp], ebp
call fcn.00416480
lea eax, [ebp + eax*2]
mov ecx, dword [esp + 0x314]
mov edx, dword [esp + 0x318]
mov ecx, dword [edx + ecx*4]
jmp ecx
mov eax, dword [esp + 0x334]
mov ecx, dword [esp + 0x338]
mov eax, dword [ecx + eax*4]
xor ebx, ebx
jmp eax
call fcn.0041a3f0
mov dword [esp + 0x11c], 1
mov eax, dword [esp + 0x120]
mov ecx, dword [esp + 0x11c]
mov eax, dword [eax + ecx*4]
jmp eax
mov edi, dword [esp + 0xc]
add edi, 0xfffffffe
mov eax, dword [esp + 0x174]
mov ecx, dword [esp + 0x178]
mov eax, dword [ecx + eax*4]
jmp eax
mov ecx, dword [esp + 0x12c]
mov edx, dword [esp + 0x130]
mov ecx, dword [edx + ecx*4]
mov esi, eax
jmp ecx
add esi, 0xfffffffe
mov eax, dword [esp + 0x23c]
mov ecx, dword [esp + 0x240]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x13c]
mov ecx, dword [esp + 0x140]
mov ecx, dword [ecx + eax*4]
mov eax, edi
jmp ecx
mov dword [esp + 8], edi
mov dword [esp + 4], ebp
mov esi, dword [esp + 0xc]
mov dword [esp], esi
call fcn.0041bbb0
lea esi, [esi + ebx*2]
lea ebx, [ebp + ebx*2]
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xf0]
mov eax, dword [ecx + eax*4]
jmp eax
mov al, cl
and eax, 1
mov dword [esp + 0x2f4], eax
mov eax, dword [esp + 0x2f8]
mov ecx, dword [esp + 0x2f4]
mov eax, dword [eax + ecx*4]
jmp eax
mov ebx, ebp
add ebx, 2
mov ax, word [ebp + 2]
xor ecx, ecx
test ax, ax
sete cl
mov dword [esp + 0x2bc], ecx
mov eax, dword [esp + 0x2c0]
mov ecx, dword [esp + 0x2bc]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0xf8]
mov eax, dword [ecx + eax*4]
jmp eax
not al
movzx eax, al
and eax, 1
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0x188]
mov ecx, dword [esp + 0x184]
mov eax, dword [eax + ecx*4]
jmp eax
add ch, byte [ecx + 0x2a]
add al, 0xda
invalid
mov word [esi], 0
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xe8]
mov eax, dword [ecx + eax*4]
mov ebp, ebx
mov ebx, dword [esp + 0x35c]
jmp eax
call fcn.0041a3f0
mov dword [esp + 0x104], 0
mov eax, dword [esp + 0x108]
mov ecx, dword [esp + 0x104]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0x244]
mov ecx, dword [esp + 0x248]
mov eax, dword [ecx + eax*4]
mov esi, dword [esp + 0xc]
jmp eax
call fcn.0041a3f0
mov dword [esp + 0x25c], 0
mov eax, dword [esp + 0x260]
mov ecx, dword [esp + 0x25c]
mov eax, dword [eax + ecx*4]
mov esi, dword [esp + 0xc]
jmp eax
call fcn.0041a3f0
mov dword [esp + 0x114], 1
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x114]
mov eax, dword [eax + ecx*4]
jmp eax
test dword [ebp - 0x6e], ebx
insb byte es:[edi], dx
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x88]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x10c]
mov ecx, dword [esp + 0x110]
mov eax, dword [ecx + eax*4]
mov ebp, dword [esp + 0x48]
jmp eax
mov ax, word [edi]
test ax, ax
sete al
mov ecx, dword [esp + 0x18c]
mov edx, dword [esp + 0x190]
mov ecx, dword [edx + ecx*4]
jmp ecx
mov ax, word [ebx]
xor ecx, ecx
test ax, ax
sete cl
mov dword [esp + 0xdc], ecx
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xdc]
mov eax, dword [eax + ecx*4]
jmp eax
mov ebx, dword [esp + 0x35c]
mov ax, word [ebx]
xor ecx, ecx
test ax, ax
sete cl
mov dword [esp + 0x1cc], ecx
mov eax, dword [esp + 0x1d0]
mov ecx, dword [esp + 0x1cc]
mov eax, dword [eax + ecx*4]
jmp eax
mov word [ebx], 0x5c
mov word [ebx + 2], 0
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd8]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0041a3f0
mov cx, word [ebp]
xor eax, eax
sub cx, 0x5c
sete cl
mov dword [esp + 0x2fc], 1
mov edx, dword [esp + 0x300]
mov esi, dword [esp + 0x2fc]
mov edx, dword [edx + esi*4]
jmp edx
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
mov eax, dword [ecx + eax*4]
jmp eax
add dword [eax], eax
add byte [ebx + 0x144248c], cl
add byte [eax], al
mov eax, dword [eax + ecx*4]
jmp eax
sbb al, 0x80
jne 0x43a4a2
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0041a3f0
mov dword [esp + 0x204], 0
mov eax, dword [esp + 0x208]
mov ecx, dword [esp + 0x204]
mov eax, dword [eax + ecx*4]
jmp eax
xchg bh, al
invalid
call fcn.0041a3f0
mov eax, ebp
xor al, 1
mov dword [esp + 0x254], 0
mov ecx, dword [esp + 0x258]
mov edx, dword [esp + 0x254]
mov ecx, dword [ecx + edx*4]
jmp ecx
mov dword [esp + 0x48], esi
mov eax, dword [esp + 0x1ac]
mov ecx, dword [esp + 0x1b0]
mov eax, dword [ecx + eax*4]
jmp eax
mov word [eax], 0x5c
mov word [ebx + 6], 0
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xb0]
mov eax, dword [ecx + eax*4]
jmp eax
mov dword [esp + 0xc], esi
mov dword [esp], ebp
mov dword [esp + 4], 0x5c
call fcn.0043a8d0
xor ecx, ecx
test eax, eax
sete cl
mov dword [esp + 0x31c], ecx
mov ecx, dword [esp + 0x320]
mov edx, dword [esp + 0x31c]
mov ecx, dword [ecx + edx*4]
jmp ecx
xchg esp, eax
sbb eax, 0x33ca7a42
xor byte [ecx], dl
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 0xa
jae 0x43a616
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx + 0x24]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0043bf80
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0x24], al
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c], eax
jmp 0x43a5e1
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx + eax*4]
jmp eax
mov ecx, dword [esp + 0x29c]
mov edx, dword [esp + 0x2a0]
mov ecx, dword [edx + ecx*4]
jmp ecx
mov eax, edi
sub eax, 3
sete byte [esp + 0x13]
mov eax, dword [esp + 0x214]
mov ecx, dword [esp + 0x218]
mov eax, dword [ecx + eax*4]
jmp eax
mov ax, word [ebx + 2]
xor ecx, ecx
sub ax, 0x3a
sete cl
mov dword [esp + 0xcc], ecx
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xcc]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0041a3f0
mov eax, ebx
add eax, 4
mov dx, word [ebx + 4]
xor ecx, ecx
test dx, dx
sete dl
mov dword [esp + 0xbc], 0
mov esi, dword [esp + 0xc0]
mov edi, dword [esp + 0xbc]
mov esi, dword [esi + edi*4]
jmp esi
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa8]
mov eax, dword [ecx + eax*4]
mov bl, 1
jmp eax
xor eax, eax
mov cl, byte [esp + 0x13]
mov al, cl
and eax, 1
mov dword [esp + 0x1fc], eax
mov eax, dword [esp + 0x200]
mov ecx, dword [esp + 0x1fc]
mov eax, dword [eax + ecx*4]
jmp eax
mov ax, word [edi]
test ax, ax
sete al
mov ebp, eax
mov eax, dword [esp + 0x264]
mov ecx, dword [esp + 0x268]
mov eax, dword [ecx + eax*4]
jmp eax
movzx eax, al
and eax, 1
mov dword [esp + 0x24c], eax
mov eax, dword [esp + 0x250]
mov ecx, dword [esp + 0x24c]
mov eax, dword [eax + ecx*4]
jmp eax
mov cl, dl
and ecx, 1
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb4]
mov ecx, dword [ecx + edx*4]
jmp ecx
call fcn.0041a3f0
mov dword [esp + 0xc4], 0
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc4]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0041a3f0
mov dword [esp + 0x2ac], 0
mov eax, dword [esp + 0x2b0]
mov ecx, dword [esp + 0x2ac]
mov eax, dword [eax + ecx*4]
jmp eax
mov word [ebx], 0
mov eax, dword [esp + 0x32c]
mov ecx, dword [esp + 0x330]
mov eax, dword [ecx + eax*4]
mov esi, ebx
jmp eax
mov ax, word [ebp]
mov ecx, dword [esp + 0x1f4]
mov edx, dword [esp + 0x1f8]
mov ecx, dword [edx + ecx*4]
jmp ecx
mov ecx, eax
xor ecx, ebp
mov ebx, ebp
add ebx, ebx
not ebx
add ebx, ebp
xor ebx, eax
not ebx
and ebx, eax
mov eax, ebx
not eax
and eax, 2
mov edx, ebx
and edx, 0xfffffffd
imul edx, eax
mov eax, ebx
and eax, 2
or ebx, 2
imul ebx, eax
add ebx, edx
sub ebx, ecx
sar ebx, 1
mov edi, ebx
inc edi
xor eax, eax
mov ecx, edi
sub ecx, 1
sete al
mov dword [esp + 0x30c], eax
mov eax, dword [esp + 0x310]
mov ecx, dword [esp + 0x30c]
mov eax, dword [eax + ecx*4]
jmp eax
mov esi, ebp
add esi, 2
mov ax, word [ebp + 2]
xor ecx, ecx
sub ax, 0x2e
sete cl
mov dword [esp + 0x1d4], ecx
mov eax, dword [esp + 0x1d8]
mov ecx, dword [esp + 0x1d4]
mov eax, dword [eax + ecx*4]
jmp eax