Function at 0x47fb30
Capabilities:
Contain obfuscated stackstrings
Create thread
Encode data using xor
Parse pe header

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4dede2
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x388
mov eax, dword [0x509040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x104
lea eax, [ebp - 0x120]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x120]
push eax
lea ecx, [ebp - 0x168]
call fcn.0045bc30
push 0xffffffffffffffff
push 0x4fdf14
lea ecx, [ebp - 0x168]
mov dword [ebp - 4], 0
call fcn.00482b90
lea ecx, [ebp - 0x1f5]
inc eax
push ecx
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0x168]
push eax
lea ecx, [ebp - 0x198]
call fcn.0045eac0
lea eax, [ebp - 0x168]
mov byte [ebp - 4], 1
push eax
mov ecx, 0x587b2c
call fcn.0045bae0
push 0x5879f4
lea ecx, [ebp - 0x198]
call fcn.0045bae0
lea eax, [ebp - 0x198]
mov ecx, 0x587afc
push eax
call fcn.0045bae0
mov ah, 0x22
mov byte [ebp - 0x1d4], 0
sub esp, 0x18
mov byte [ebp - 0x1c5], 1
mov esi, esp
mov byte [ebp - 0x1d8], ah
mov cl, 0x13
mov dword [ebp - 0x1d0], esi
xor cl, ah
mov byte [ebp - 0x1d4], 0
push dword [ebp - 0x1cf]
mov al, 1
mov byte [ebp - 0x1d6], cl
mov dl, 0x18
xor al, ah
xor dl, ah
mov byte [ebp - 0x1d7], al
mov ecx, esi
mov byte [ebp - 0x1d5], dl
call fcn.0045c360
lea edx, [ebp - 0x1d7]
mov byte [ebp - 4], 2
lea edi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x47fc63
sub edx, edi
lea eax, [ebp - 0x1d7]
push edx
push eax
mov ecx, esi
call fcn.0045c380
mov byte [ebp - 4], 1
mov cl, byte [ebp - 0x1c5]
call fcn.0045d170
add esp, 0x18
cmp byte [0x588847], 0
jne 0x47fccc
mov esi, dword [sym.imp.KERNEL32.dll_CreateThread]
push 0
push 0
push 0
push 0x474690
push 0
push 0
call esi
call fcn.00475160
cmp byte [0x588847], 0
jne 0x47fccc
push 0
push 0
push 0
push 0x47acc0
push 0
push 0
call esi
sub esp, 0x18
mov byte [ebp - 0x1c5], 0
mov esi, esp
mov dword [ebp - 0x1d0], esi
mov ecx, esi
push dword [ebp - 0x1cf]
call fcn.0045c360
push 2
push 0x4fd02c
mov ecx, esi
mov byte [ebp - 4], 3
call fcn.0045c380
mov byte [ebp - 4], 1
mov cl, byte [ebp - 0x1c5]
call fcn.0045d170
mov esi, esp
mov byte [ebp - 0x1c5], 1
mov dword [ebp - 0x1d0], esi
mov ecx, esi
push dword [ebp - 0x1cf]
call fcn.0045c360
push 3
push 0x4fdf18
mov ecx, esi
mov byte [ebp - 4], 4
call fcn.0045c380
mov byte [ebp - 4], 1
mov cl, byte [ebp - 0x1c5]
call fcn.0045d170
add esp, 0x18
cmp byte [0x588847], 0
jne 0x47ff24
movaps xmm0, xmmword [0x500640]
xor ecx, ecx
movups xmmword [ebp - 0x274], xmm0
mov dword [ebp - 0x254], 0x27235756
movaps xmm0, xmmword [0x5006f0]
movups xmmword [ebp - 0x264], xmm0
mov word [ebp - 0x250], 0x55
nop word [eax + eax]
mov al, byte [ebp - 0x274]
xor byte [ebp + ecx - 0x273], al
inc ecx
cmp ecx, 0x24
jb 0x47fd90
push dword [ebp - 0x1cf]
lea ecx, [ebp - 0x24c]
mov byte [ebp - 0x24f], 0
call fcn.0045c360
lea ecx, [ebp - 0x273]
mov byte [ebp - 4], 5
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x47fdc8
sub ecx, edx
lea eax, [ebp - 0x273]
push ecx
push eax
lea ecx, [ebp - 0x24c]
call fcn.0045c380
movaps xmm0, xmmword [0x4ff150]
xor ecx, ecx
movups xmmword [ebp - 0x1c4], xmm0
mov byte [ebp - 0x1b4], 0
nop dword [eax + eax]
mov al, byte [ebp - 0x1c4]
xor byte [ebp + ecx - 0x1c3], al
inc ecx
cmp ecx, 0xf
jb 0x47fe00
push dword [ebp - 0x1cf]
lea ecx, [ebp - 0x21c]
mov byte [ebp - 0x1b4], 0
call fcn.0045c360
lea ecx, [ebp - 0x1c3]
mov byte [ebp - 4], 7
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x47fe38
sub ecx, edx
lea eax, [ebp - 0x1c3]
push ecx
push eax
lea ecx, [ebp - 0x21c]
call fcn.0045c380
movaps xmm0, xmmword [0x500480]
xor ecx, ecx
movups xmmword [ebp - 0x2a0], xmm0
mov dword [ebp - 0x280], 0x50525053
movaps xmm0, xmmword [0x500700]
movups xmmword [ebp - 0x290], xmm0
mov dword [ebp - 0x27c], 0x1a164c56
mov word [ebp - 0x278], 0x16
nop
mov al, byte [ebp - 0x2a0]
xor byte [ebp + ecx - 0x29f], al
inc ecx
cmp ecx, 0x28
jb 0x47fe90
push dword [ebp - 0x1cf]
lea ecx, [ebp - 0x138]
mov byte [ebp - 0x277], 0
call fcn.0045c360
lea ecx, [ebp - 0x29f]
mov byte [ebp - 4], 9
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x47fec8
sub ecx, edx
lea eax, [ebp - 0x29f]
push ecx
push eax
lea ecx, [ebp - 0x138]
call fcn.0045c380
lea eax, [ebp - 0x24c]
mov byte [ebp - 4], 0xa
push eax
lea edx, [ebp - 0x21c]
lea ecx, [ebp - 0x138]
call fcn.00460f00
add esp, 4
lea ecx, [ebp - 0x138]
call fcn.0045bb10
lea ecx, [ebp - 0x21c]
call fcn.0045bb10
lea ecx, [ebp - 0x24c]
call fcn.0045bb10
mov dl, 0x77
mov byte [ebp - 0x1d5], 0
sub esp, 0x18
mov byte [ebp - 0x1c5], 0
mov esi, esp
mov byte [ebp - 0x1d8], dl
mov cl, 0x1c
mov dword [ebp - 0x1d0], esi
xor cl, dl
mov byte [ebp - 0x1d5], 0
push dword [ebp - 0x1cf]
mov al, 0x18
mov byte [ebp - 0x1d6], cl
xor al, dl
mov ecx, esi
mov byte [ebp - 0x1d7], al
call fcn.0045c360
lea edx, [ebp - 0x1d7]
mov byte [ebp - 4], 0xb
lea edi, [edx + 1]
nop word [eax + eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x47ff80
sub edx, edi
lea eax, [ebp - 0x1d7]
push edx
push eax
mov ecx, esi
call fcn.0045c380
mov byte [ebp - 4], 1
mov cl, byte [ebp - 0x1c5]
call fcn.0045d170
mov ah, 0x4e
mov byte [ebp - 0x1d4], 0
mov esi, esp
mov byte [ebp - 0x1c5], 1
mov cl, 0x7d
mov dword [ebp - 0x1d0], esi
push dword [ebp - 0x1cf]
xor cl, ah
mov byte [ebp - 0x1d8], ah
mov al, 0x6d
mov byte [ebp - 0x1d6], cl
mov dl, 0x74
mov byte [ebp - 0x1d4], 0
xor al, ah
xor dl, ah
mov ecx, esi
mov byte [ebp - 0x1d7], al
mov byte [ebp - 0x1d5], dl
call fcn.0045c360
lea edx, [ebp - 0x1d7]
mov byte [ebp - 4], 0xc
lea edi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x480004
sub edx, edi
lea eax, [ebp - 0x1d7]
push edx
push eax
mov ecx, esi
call fcn.0045c380
mov byte [ebp - 4], 1
mov cl, byte [ebp - 0x1c5]
call fcn.0045d170
add esp, 0x18
cmp byte [0x588847], 0
jne 0x48003c
call fcn.00475160
sub esp, 0x18
mov byte [ebp - 0x1c5], 0
mov esi, esp
mov dword [ebp - 0x1d0], esi
mov ecx, esi
push dword [ebp - 0x1cf]
call fcn.0045c360
push 2
push 0x4fd02c
mov ecx, esi
mov byte [ebp - 4], 0xd
call fcn.0045c380
mov byte [ebp - 4], 1
mov cl, byte [ebp - 0x1c5]
call fcn.0045d170
mov esi, esp
mov byte [ebp - 0x1c5], 1
mov dword [ebp - 0x1d0], esi
mov ecx, esi
push dword [ebp - 0x1cf]
call fcn.0045c360
push 3
push 0x4fdf1c
mov ecx, esi
mov byte [ebp - 4], 0xe
call fcn.0045c380
mov byte [ebp - 4], 1
mov cl, byte [ebp - 0x1c5]
call fcn.0045d170
mov ecx, esp
call fcn.004605e0
lea ecx, [ebp - 0x234]
call fcn.00460350
add esp, 0x18
mov ecx, 0x588a60
push eax
call fcn.0045bb60
lea ecx, [ebp - 0x234]
call fcn.0045bb10
sub esp, 0x18
mov ecx, esp
push 0x588a60
call fcn.0045bc70
lea ecx, [ebp - 0x234]
call fcn.0045ff40
add esp, 0x18
mov ecx, 0x588a60
push eax
call fcn.0045bb60
lea ecx, [ebp - 0x234]
call fcn.0045bb10
push dword [ebp - 0x1cf]
mov byte [ebp - 0x1e4], 0x46
mov al, 0xa
xor al, byte [ebp - 0x1e4]
mov cl, 9
mov byte [ebp - 0x1e3], al
mov ch, 3
mov al, byte [ebp - 0x1e4]
mov dl, 7
xor cl, al
mov byte [ebp - 0x1dd], 0
xor ch, al
mov byte [ebp - 0x1e2], cl
mov ah, 2
mov byte [ebp - 0x1df], ch
mov dh, 0x14
mov byte [ebp - 0x1dd], 0
xor dl, al
lea ecx, [ebp - 0x180]
xor ah, al
mov byte [ebp - 0x1e1], dl
xor dh, al
mov byte [ebp - 0x1e0], ah
mov byte [ebp - 0x1de], dh
call fcn.0045c360
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x1e3]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x480190
sub ecx, edx
lea eax, [ebp - 0x1e3]
push ecx
push eax
lea ecx, [ebp - 0x180]
call fcn.0045c380
mov byte [ebp - 4], 0x10
mov al, 7
mov ch, al
mov byte [ebp - 0x1f4], 0x25
xor al, byte [ebp - 0x1f4]
mov cl, 0x40
xor cl, byte [ebp - 0x1f4]
mov ah, 0x4c
mov byte [ebp - 0x1f3], al
mov dl, 0x53
mov byte [ebp - 0x1f2], cl
mov dh, 0x1f
mov cl, byte [ebp - 0x1f4]
xor ah, cl
mov byte [ebp - 0x1c5], 5
mov al, byte [ebp - 0x1c5]
xor dl, cl
xor al, cl
mov byte [ebp - 0x1c7], ch
mov byte [ebp - 0x1ed], al
xor ch, cl
mov al, byte [ebp - 0x1c7]
xor dh, cl
xor al, cl
mov byte [ebp - 0x1f0], ah
mov byte [ebp - 0x1ec], al
mov ah, 0x2e
mov cl, 2
mov byte [ebp - 0x1ee], dh
xor cl, ah
mov byte [ebp - 0x204], 0x3b
mov al, 0xc
mov byte [ebp - 0x1ce], cl
xor al, ah
mov byte [ebp - 0x1f1], dl
mov byte [ebp - 0x1cf], al
mov cl, 0x19
mov dh, cl
mov byte [ebp - 0x1c7], 1
xor cl, byte [ebp - 0x204]
mov al, 0x40
xor al, byte [ebp - 0x204]
mov dl, 0xe
xor dl, ah
mov byte [ebp - 0x203], al
mov al, byte [ebp - 0x1c7]
mov byte [ebp - 0x202], cl
mov cl, byte [ebp - 0x204]
xor al, cl
mov byte [ebp - 0x1ef], ch
mov byte [ebp - 0x1d0], ah
mov ch, 0x43
mov byte [ebp - 0x1cd], dl
mov ah, 0x41
mov byte [ebp - 0x1fd], al
mov dl, 0x55
mov byte [ebp - 0x1c5], 0x1b
xor dl, cl
mov al, byte [ebp - 0x1c5]
xor ah, cl
mov byte [ebp - 0x1c6], dh
xor ch, cl
xor dh, cl
mov byte [ebp - 0x1eb], 0
xor al, cl
mov byte [ebp - 0x1cc], 0
mov byte [ebp - 0x1eb], 0
mov byte [ebp - 0x1cc], 0
mov byte [ebp - 0x1fa], 0
mov byte [ebp - 0x201], dl
mov byte [ebp - 0x200], ah
mov byte [ebp - 0x1ff], ch
mov byte [ebp - 0x1fe], dh
mov byte [ebp - 0x1fc], al
mov al, byte [ebp - 0x1c6]
lea edx, [ebp - 0x203]
xor al, cl
mov byte [ebp - 0x1fa], 0
push 0x588a60
lea ecx, [ebp - 0x350]
mov byte [ebp - 0x1fb], al
call fcn.0045c050
add esp, 4
mov edx, eax
lea ecx, [ebp - 0x1cf]
mov byte [ebp - 4], 0x11
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x480331
sub ecx, esi
lea eax, [ebp - 0x1cf]
push ecx
push eax
mov ecx, edx
call fcn.0045bee0
push eax
lea ecx, [ebp - 0x21c]
call fcn.0045bbe0
lea ecx, [ebp - 0x1f3]
mov byte [ebp - 4], 0x12
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x480362
sub ecx, edx
lea eax, [ebp - 0x1f3]
push ecx
push eax
lea ecx, [ebp - 0x21c]
call fcn.0045bee0
push eax
lea ecx, [ebp - 0x138]
call fcn.0045bbe0
lea eax, [ebp - 0x180]
mov byte [ebp - 4], 0x13
push eax
lea edx, [ebp - 0x138]
lea ecx, [ebp - 0x234]
call fcn.0045c190
add esp, 4
push 2
push 0x4fb39c
mov ecx, eax
mov byte [ebp - 4], 0x14
call fcn.0045bee0
push eax
lea ecx, [ebp - 0x1b0]
call fcn.0045bbe0
lea ecx, [ebp - 0x234]
call fcn.0045bb10
lea ecx, [ebp - 0x138]
call fcn.0045bb10
lea ecx, [ebp - 0x21c]
call fcn.0045bb10
lea ecx, [ebp - 0x350]
mov byte [ebp - 4], 0x19
call fcn.0045bb10
lea ecx, [ebp - 0x1b0]
call fcn.0045b990
movaps xmm0, xmmword [0x500e60]
mov edx, eax
movups xmmword [ebp - 0x308], xmm0
xor ecx, ecx
mov word [ebp - 0x2a8], 4
movaps xmm0, xmmword [0x500fb0]
movups xmmword [ebp - 0x2f8], xmm0
movaps xmm0, xmmword [0x500f80]
movups xmmword [ebp - 0x2e8], xmm0
movaps xmm0, xmmword [0x4ffd60]
movups xmmword [ebp - 0x2d8], xmm0
movaps xmm0, xmmword [0x4ffbd0]
movups xmmword [ebp - 0x2c8], xmm0
movaps xmm0, xmmword [0x500f90]
movups xmmword [ebp - 0x2b8], xmm0
nop dword [eax]
nop word [eax + eax]
mov al, byte [ebp - 0x308]
xor byte [ebp + ecx - 0x307], al
inc ecx
cmp ecx, 0x60
jb 0x480470
lea ecx, [ebp - 0x307]
mov byte [ebp - 0x2a7], 0
call fcn.00479c50
test al, al
je 0x4804a2
mov byte [0x588851], 0
jmp 0x4804ae
mov byte [0x588851], 1
call fcn.0047f6e0
push dword [ebp - 0x1cf]
lea ecx, [ebp - 0x150]
call fcn.0045c360
lea ecx, [ebp - 0x150]
call fcn.0045bd90
push dword [ebp - 0x1cf]
mov byte [ebp - 0x1f4], 0x37
mov al, 0xb
xor al, byte [ebp - 0x1f4]
mov cl, 0x18
xor cl, byte [ebp - 0x1f4]
mov dl, 0x5b
mov byte [ebp - 0x1f3], al
mov ch, 0x54
mov byte [ebp - 0x1c6], dl
mov ah, 0x58
mov al, byte [ebp - 0x1c6]
mov dh, 0x56
mov byte [ebp - 0x1f2], cl
mov cl, byte [ebp - 0x1f4]
xor al, cl
mov byte [ebp - 0x1c7], 0x52
mov byte [ebp - 0x1ed], al
xor ch, cl
mov al, byte [ebp - 0x1c7]
xor dl, cl
xor al, cl
mov byte [ebp - 0x1c5], 9
mov byte [ebp - 0x1ec], al
xor ah, cl
mov al, byte [ebp - 0x1c5]
xor dh, cl
xor al, cl
mov byte [ebp - 0x1ef], ch
mov byte [ebp - 0x1ea], 0
lea ecx, [ebp - 0x21c]
mov byte [ebp - 0x1f1], dl
mov byte [ebp - 0x1f0], ah
mov byte [ebp - 0x1ee], dh
mov byte [ebp - 0x1eb], al
mov byte [ebp - 0x1ea], 0
call fcn.0045c360
lea ecx, [ebp - 0x1f3]
mov byte [ebp - 4], 0x1b
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x480585
sub ecx, edx
lea eax, [ebp - 0x1f3]
push ecx
push eax
lea ecx, [ebp - 0x21c]
call fcn.0045c380
push dword [ebp - 0x1cf]
mov cl, 0x5d
mov byte [ebp - 0x1e4], 0x31
mov dh, cl
mov byte [ebp - 0x1c6], 0x54
xor cl, byte [ebp - 0x1e4]
mov al, 0xd
xor al, byte [ebp - 0x1e4]
mov ch, 0x50
mov byte [ebp - 0x1e3], al
mov dl, 0x5e
mov al, byte [ebp - 0x1c6]
mov ah, 0x52
mov byte [ebp - 0x1e2], cl
mov cl, byte [ebp - 0x1e4]
xor al, cl
mov byte [ebp - 0x1c7], 0xf
mov byte [ebp - 0x1dd], al
xor ch, cl
mov al, byte [ebp - 0x1c7]
xor dl, cl
xor ah, cl
mov byte [ebp - 0x1df], ch
xor dh, cl
mov byte [ebp - 0x1db], 0
xor al, cl
mov byte [ebp - 0x1e1], dl
lea ecx, [ebp - 0x138]
mov byte [ebp - 0x1e0], ah
mov byte [ebp - 0x1de], dh
mov byte [ebp - 0x1dc], al
mov byte [ebp - 0x1db], 0
call fcn.0045c360
lea ecx, [ebp - 0x1e3]
mov byte [ebp - 4], 0x1d
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x480648
sub ecx, edx
lea eax, [ebp - 0x1e3]
push ecx
push eax
lea ecx, [ebp - 0x138]
call fcn.0045c380
lea eax, [ebp - 0x150]
mov byte [ebp - 4], 0x1e
push eax
lea edx, [ebp - 0x21c]
lea ecx, [ebp - 0x138]
call fcn.00461b60
add esp, 4
mov byte [ebp - 0x1c6], al
lea ecx, [ebp - 0x138]
call fcn.0045bb10
lea ecx, [ebp - 0x21c]
call fcn.0045bb10
cmp byte [ebp - 0x1c6], 0
je 0x48070b
mov dh, 0x22
mov byte [ebp - 0x1de], 0
mov al, 0x52
mov byte [ebp - 0x1e4], dh
mov ah, 0x60
mov byte [ebp - 0x1de], 0
xor al, dh
xor ah, dh
mov cl, 0x56
mov byte [ebp - 0x1e3], al
mov ch, 0x70
mov byte [ebp - 0x1e0], ah
xor cl, dh
lea eax, [ebp - 0x1e3]
xor ch, dh
mov byte [ebp - 0x1e2], cl
mov dl, 0x7d
mov byte [ebp - 0x1df], ch
xor dl, dh
lea ecx, [ebp - 0x150]
push eax
mov byte [ebp - 0x1e1], dl
call fcn.0045c5d0
test al, al
setne byte [0x509418]
sub esp, 0x18
mov byte [ebp - 0x1c6], 0
mov esi, esp
mov dword [ebp - 0x1d0], esi
mov ecx, esi
push dword [ebp - 0x1cf]
call fcn.0045c360
push 2
push 0x4fd02c
mov ecx, esi
mov byte [ebp - 4], 0x1f
call fcn.0045c380
mov byte [ebp - 4], 0x1a
mov cl, byte [ebp - 0x1c6]
call fcn.0045d170
mov esi, esp
mov byte [ebp - 0x1c6], 1
mov dword [ebp - 0x1d0], esi
mov ecx, esi
push dword [ebp - 0x1cf]
call fcn.0045c360
push 3
push 0x4fdf20
mov ecx, esi
mov byte [ebp - 4], 0x20
call fcn.0045c380
mov byte [ebp - 4], 0x1a
mov cl, byte [ebp - 0x1c6]
call fcn.0045d170
add esp, 0x18
push 0
push 0xfffffffffffffff5
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
cmp byte [0x588851], 0
jne 0x481138
movaps xmm0, xmmword [0x5006e0]
mov dl, 0x5e
mov cl, 0x23
mov byte [ebp - 0x1d8], dl
xor cl, dl
mov byte [ebp - 0x1d5], 0
mov ch, 0x77
mov byte [ebp - 0x1d6], cl
mov al, 0x7c
mov byte [ebp - 0x1f0], ch
xor al, dl
mov byte [ebp - 0x1eb], 0
mov byte [ebp - 0x1d7], al
mov cl, 0x1f
mov al, 0x11
mov byte [ebp - 0x1d5], 0
mov dl, 1
mov byte [ebp - 0x1eb], 0
mov ah, 0x1e
mov word [ebp - 0x238], 0x4a48
xor cl, ch
mov byte [ebp - 0x236], 0
xor al, ch
mov byte [ebp - 0x1ee], cl
xor dl, ch
mov byte [ebp - 0x1ef], al
xor ah, ch
mov byte [ebp - 0x1ed], dl
mov byte [ebp - 0x1ec], ah
xor ecx, ecx
movups xmmword [ebp - 0x248], xmm0
mov al, byte [ebp - 0x248]
xor byte [ebp + ecx - 0x247], al
inc ecx
cmp ecx, 0x11
jb 0x480831
mov cl, 0x27
mov byte [ebp - 0x204], 5
mov dh, cl
mov byte [ebp - 0x1c6], 0x3f
xor cl, byte [ebp - 0x204]
mov al, 0x7e
xor al, byte [ebp - 0x204]
mov dl, 0x6b
mov byte [ebp - 0x203], al
mov ch, 0x7d
mov al, byte [ebp - 0x1c6]
mov ah, 0x7f
mov byte [ebp - 0x202], cl
mov cl, byte [ebp - 0x204]
xor al, cl
mov byte [ebp - 0x1c7], 0x25
mov byte [ebp - 0x1fd], al
xor dl, cl
mov al, byte [ebp - 0x1c7]
xor ch, cl
xor al, cl
mov byte [ebp - 0x1c5], dh
xor dh, cl
mov byte [ebp - 0x1fc], al
mov al, byte [ebp - 0x1c5]
xor ah, cl
xor al, cl
mov byte [ebp - 0x201], dl
mov byte [ebp - 0x1ff], ch
lea ecx, [ebp - 0x290]
mov byte [ebp - 0x1fe], dh
lea edx, [ebp - 0x203]
mov byte [ebp - 0x1fa], 0
push 0x588a60
mov byte [ebp - 0x236], 0
mov byte [ebp - 0x200], ah
mov byte [ebp - 0x1fb], al
mov byte [ebp - 0x1fa], 0
call fcn.0045c050
add esp, 4
mov edx, eax
lea ecx, [ebp - 0x247]
mov byte [ebp - 4], 0x21
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x480910
sub ecx, esi
lea eax, [ebp - 0x247]
push ecx
push eax
mov ecx, edx
call fcn.0045bee0
push eax
lea ecx, [ebp - 0x398]
call fcn.0045bbe0
lea ecx, [ebp - 0x1ef]
mov byte [ebp - 4], 0x22
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x480941
sub ecx, edx
lea eax, [ebp - 0x1ef]
push ecx
push eax
lea ecx, [ebp - 0x398]
call fcn.0045bee0
push eax
lea ecx, [ebp - 0x380]
call fcn.0045bbe0
lea ecx, [ebp - 0x1d7]
mov byte [ebp - 4], 0x23
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x480976
sub ecx, edx
lea eax, [ebp - 0x1d7]
push ecx
push eax
lea ecx, [ebp - 0x380]
call fcn.0045bee0
push eax
lea ecx, [ebp - 0x138]
call fcn.0045bbe0
lea ecx, [ebp - 0x380]
call fcn.0045bb10
lea ecx, [ebp - 0x398]
call fcn.0045bb10
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 0x27
call fcn.0045bb10
lea ecx, [ebp - 0x138]
call fcn.0045b990
movaps xmm0, xmmword [str._G___]
mov edx, eax
movups xmmword [ebp - 0x308], xmm0
xor ecx, ecx
mov word [ebp - 0x2a8], 0x5a
movaps xmm0, xmmword [0x4ff610]
movups xmmword [ebp - 0x2f8], xmm0
movaps xmm0, xmmword [0x4ff7c0]
movups xmmword [ebp - 0x2e8], xmm0
movaps xmm0, xmmword [0x4ff6f0]
movups xmmword [ebp - 0x2d8], xmm0
movaps xmm0, xmmword [0x4ff7e0]
movups xmmword [ebp - 0x2c8], xmm0
movaps xmm0, xmmword [0x4ff830]
movups xmmword [ebp - 0x2b8], xmm0
nop
mov al, byte [ebp - 0x308]
xor byte [ebp + ecx - 0x307], al
inc ecx
cmp ecx, 0x60
jb 0x480a30
push 0
push 0x588a60
lea ecx, [ebp - 0x307]
mov byte [ebp - 0x2a7], 0
call fcn.0047a2f0
sub esp, 0x10
mov ecx, esp
call fcn.004605e0
lea ecx, [ebp - 0x234]
call fcn.00460350
add esp, 0x18
mov ecx, 0x588a60
push eax
call fcn.0045bb60
lea ecx, [ebp - 0x234]
call fcn.0045bb10
sub esp, 0x18
mov ecx, esp
push 0x588a60
call fcn.0045bc70
lea ecx, [ebp - 0x234]
call fcn.0045ff40
add esp, 0x18
mov ecx, 0x588a60
push eax
call fcn.0045bb60
lea ecx, [ebp - 0x234]
call fcn.0045bb10
movaps xmm0, xmmword [0x500cb0]
mov dl, 0x5d
mov cl, 0x20
mov byte [ebp - 0x1d0], dl
xor cl, dl
mov byte [ebp - 0x1cd], 0
mov dh, 0x42
mov byte [ebp - 0x1ce], cl
mov al, 0x7f
mov byte [ebp - 0x1de], 0
xor al, dl
mov byte [ebp - 0x1cd], 0
mov byte [ebp - 0x1cf], al
mov cl, 0x31
mov ch, 0x34
mov byte [ebp - 0x1e4], dh
mov al, 0x3a
mov byte [ebp - 0x1de], 0
mov dl, 0x38
mov word [ebp - 0x208], 0x7e7c
mov ah, 0x27
mov byte [ebp - 0x206], 0
xor cl, dh
xor ch, dh
xor al, dh
mov byte [ebp - 0x1e2], cl
xor dl, dh
mov byte [ebp - 0x1df], ch
xor ah, dh
mov byte [ebp - 0x1e3], al
mov byte [ebp - 0x1e1], dl
xor ecx, ecx
mov byte [ebp - 0x1e0], ah
movups xmmword [ebp - 0x218], xmm0
nop
mov al, byte [ebp - 0x218]
xor byte [ebp + ecx - 0x217], al
inc ecx
cmp ecx, 0x11
jb 0x480b50
mov cl, 0x42
mov byte [ebp - 0x1c0], 0x60
mov dh, cl
mov byte [ebp - 0x1c6], 0x5a
xor cl, byte [ebp - 0x1c0]
mov al, 0x1b
xor al, byte [ebp - 0x1c0]
mov dl, 0xe
mov byte [ebp - 0x1bf], al
mov ch, 0x18
mov al, byte [ebp - 0x1c6]
mov ah, 0x1a
mov byte [ebp - 0x1be], cl
mov cl, byte [ebp - 0x1c0]
xor al, cl
mov byte [ebp - 0x1c7], 0x40
mov byte [ebp - 0x1b9], al
xor dl, cl
mov al, byte [ebp - 0x1c7]
xor ch, cl
xor al, cl
mov byte [ebp - 0x1c5], dh
xor dh, cl
mov byte [ebp - 0x1b8], al
mov al, byte [ebp - 0x1c5]
xor ah, cl
xor al, cl
mov byte [ebp - 0x1bd], dl
mov byte [ebp - 0x1bb], ch
lea ecx, [ebp - 0x268]
mov byte [ebp - 0x1ba], dh
lea edx, [ebp - 0x1bf]
mov byte [ebp - 0x1b6], 0
push 0x588a60
mov byte [ebp - 0x206], 0
mov byte [ebp - 0x1bc], ah
mov byte [ebp - 0x1b7], al
mov byte [ebp - 0x1b6], 0
call fcn.0045c050
add esp, 4
mov edx, eax
lea ecx, [ebp - 0x217]
mov byte [ebp - 4], 0x28
lea esi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x480c30
sub ecx, esi
lea eax, [ebp - 0x217]
push ecx
push eax
mov ecx, edx
call fcn.0045bee0
push eax
lea ecx, [ebp - 0x234]
call fcn.0045bbe0
lea ecx, [ebp - 0x1e3]
mov byte [ebp - 4], 0x29
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x480c61
sub ecx, edx
lea eax, [ebp - 0x1e3]
push ecx
push eax
lea ecx, [ebp - 0x234]
call fcn.0045bee0
push eax
lea ecx, [ebp - 0x350]
call fcn.0045bbe0
lea ecx, [ebp - 0x1cf]
mov byte [ebp - 4], 0x2a
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x480c96
sub ecx, edx
lea eax, [ebp - 0x1cf]
push ecx
push eax
lea ecx, [ebp - 0x350]
call fcn.0045bee0
push eax
lea ecx, [ebp - 0x368]
call fcn.0045bbe0
lea eax, [ebp - 0x368]
push eax
lea ecx, [ebp - 0x138]
call fcn.0045bb60
lea ecx, [ebp - 0x368]
call fcn.0045bb10
lea ecx, [ebp - 0x350]
call fcn.0045bb10
lea ecx, [ebp - 0x234]
call fcn.0045bb10
lea ecx, [ebp - 0x268]
mov byte [ebp - 4], 0x27
call fcn.0045bb10
lea ecx, [ebp - 0x138]
call fcn.0045b990
movaps xmm0, xmmword [0x500440]
mov edx, eax
movups xmmword [ebp - 0x308], xmm0
xor ecx, ecx
mov word [ebp - 0x2a8], 0x10
movaps xmm0, xmmword [0x500730]
movups xmmword [ebp - 0x2f8], xmm0
movaps xmm0, xmmword [0x500900]
movups xmmword [ebp - 0x2e8], xmm0
movaps xmm0, xmmword [0x500660]
movups xmmword [ebp - 0x2d8], xmm0
movaps xmm0, xmmword [0x5008c0]
movups xmmword [ebp - 0x2c8], xmm0
movaps xmm0, xmmword [0x500800]
movups xmmword [ebp - 0x2b8], xmm0
nop dword [eax]
mov al, byte [ebp - 0x308]
xor byte [ebp + ecx - 0x307], al
inc ecx
cmp ecx, 0x60
jb 0x480d70
push 0
push 0x587c1c
lea ecx, [ebp - 0x307]
mov byte [ebp - 0x2a7], 0
call fcn.0047a2f0
sub esp, 0x10
mov ecx, esp
push 0x587c1c
call fcn.0045bc70
lea ecx, [ebp - 0x268]
call fcn.00460350
add esp, 0x18
mov ecx, 0x587c1c
push eax
call fcn.0045bb60
lea ecx, [ebp - 0x268]
call fcn.0045bb10
sub esp, 0x18
mov ecx, esp
push 0x587c1c
call fcn.0045bc70
lea ecx, [ebp - 0x268]
call fcn.0045ff40
add esp, 0x18
mov ecx, 0x587c1c
push eax
call fcn.0045bb60
lea ecx, [ebp - 0x268]
call fcn.0045bb10
mov ecx, 0x587c1c
call fcn.0045b990
mov edx, 0x587c51
sub edx, eax
mov cl, byte [eax]
lea eax, [eax + 1]
mov byte [eax + edx - 1], cl
test cl, cl
jne 0x480e13
mov byte [0x588852], 1
mov byte [0x588846], cl
mov byte [0x509419], cl
cmp byte [0x588853], cl
je 0x480ee6
mov ah, 0x2c
mov byte [ebp - 0x1e4], 0xc
mov al, 0x4d
mov byte [ebp - 0x1d0], ah
mov cl, al
mov byte [ebp - 0x1cc], 0
mov dl, al
mov byte [ebp - 0x1dd], 0
xor al, ah
mov byte [ebp - 0x1cc], 0
xor cl, ah
mov byte [ebp - 0x1cf], al
xor dl, ah
mov byte [ebp - 0x1ce], cl
mov al, 0x7c
mov byte [ebp - 0x1cd], dl
xor al, byte [ebp - 0x1e4]
mov cl, 0x6d
mov byte [ebp - 0x1e3], al
mov ah, cl
mov al, byte [ebp - 0x1e4]
mov dl, 0x7f
xor ah, al
mov byte [ebp - 0x1dd], 0
mov ch, 0x2c
mov byte [ebp - 0x1e0], ah
mov dh, 0x3e
xor cl, al
xor dl, al
mov byte [ebp - 0x1e2], cl
xor ch, al
mov byte [ebp - 0x1e1], dl
xor dh, al
mov byte [ebp - 0x1df], ch
push 0
lea eax, [ebp - 0x1cf]
mov byte [ebp - 0x1de], dh
push eax
lea eax, [ebp - 0x1e3]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov cl, 0x39
mov dword [ebp - 0x1e8], 0x55494a39
mov dword [ebp - 0x1e4], 0xa4e564e
xor eax, eax
mov dword [ebp - 0x1e0], 0x415c170b
mov word [ebp - 0x1dc], 0x5c
xor byte [ebp + eax - 0x1e7], cl
inc eax
cmp eax, 0xc
jae 0x480f26
mov cl, byte [ebp - 0x1e8]
jmp 0x480f11
lea eax, [ebp - 0x1e7]
mov byte [ebp - 0x1db], 0
push eax
lea ecx, [ebp - 0x368]
call fcn.0045bc30
mov byte [ebp - 4], 0x2b
mov al, 0x71
mov byte [ebp - 0x1c0], 0x32
mov cl, 8
xor al, byte [ebp - 0x1c0]
mov ah, 0x65
xor cl, byte [ebp - 0x1c0]
mov ch, 0x5b
mov byte [ebp - 0x1bf], al
mov dl, 0x6e
mov byte [ebp - 0x1be], cl
mov dh, 0x5c
mov cl, byte [ebp - 0x1c0]
mov byte [ebp - 0x1c6], 0x56
xor ah, cl
mov al, byte [ebp - 0x1c6]
xor ch, cl
xor al, cl
mov byte [ebp - 0x1c7], 0x5d
mov byte [ebp - 0x1b9], al
xor dl, cl
mov al, byte [ebp - 0x1c7]
xor dh, cl
xor al, cl
mov byte [ebp - 0x1c5], 0x45
mov byte [ebp - 0x1b8], al
mov al, byte [ebp - 0x1c5]
xor al, cl
mov byte [ebp - 0x1f5], 0x41
mov byte [ebp - 0x1b7], al
mov al, byte [ebp - 0x1f5]
xor al, cl
mov byte [ebp - 0x1bc], ah
mov byte [ebp - 0x1b6], al
lea eax, [ebp - 0x1bf]
mov byte [ebp - 0x1bb], ch
lea ecx, [ebp - 0x350]
mov byte [ebp - 0x1b5], 0
push eax
mov byte [ebp - 0x1bd], dl
mov byte [ebp - 0x1ba], dh
mov byte [ebp - 0x1b5], 0
call fcn.0045bc30
mov byte [ebp - 4], 0x2c
xor ecx, ecx
movaps xmm0, xmmword [0x500870]
movups xmmword [ebp - 0x338], xmm0
mov dword [ebp - 0x2a8], 0x4a3b4f4b
movaps xmm0, xmmword [0x500380]
movups xmmword [ebp - 0x328], xmm0
mov dword [ebp - 0x2a4], 0x4f2b4a
movaps xmm0, xmmword [0x500320]
movups xmmword [ebp - 0x318], xmm0
movaps xmm0, xmmword [0x4ff3f0]
movups xmmword [ebp - 0x308], xmm0
movaps xmm0, xmmword [0x4ff190]
movups xmmword [ebp - 0x2f8], xmm0
movaps xmm0, xmmword [0x500430]
movups xmmword [ebp - 0x2e8], xmm0
movaps xmm0, xmmword [0x4ff040]
movups xmmword [ebp - 0x2d8], xmm0
movaps xmm0, xmmword [0x5003a0]
movups xmmword [ebp - 0x2c8], xmm0
movaps xmm0, xmmword [0x500340]
movups xmmword [ebp - 0x2b8], xmm0
mov al, byte [ebp - 0x338]
xor byte [ebp + ecx - 0x337], al
inc ecx
cmp ecx, 0x96
jb 0x4810a0
lea eax, [ebp - 0x337]
mov byte [ebp - 0x2a1], 0
push eax
lea ecx, [ebp - 0x234]
call fcn.0045bc30
lea eax, [ebp - 0x368]
mov byte [ebp - 4], 0x2d
push eax
lea edx, [ebp - 0x350]
lea ecx, [ebp - 0x234]
call fcn.00460bc0
add esp, 4
lea ecx, [ebp - 0x234]
call fcn.0045bb10
lea ecx, [ebp - 0x350]
call fcn.0045bb10
lea ecx, [ebp - 0x368]
call fcn.0045bb10
lea ecx, [ebp - 0x138]
mov byte [0x588852], 0
mov byte [0x588846], 0
mov byte [0x509419], 1
mov byte [0x588845], 1
call fcn.0045bb10
jmp 0x48115b
mov byte [0x587c51], 0
mov byte [0x588852], 0
mov byte [0x588846], 0
mov byte [0x509419], 1
mov byte [0x588845], 0
call dword [sym.imp.KERNEL32.dll_FreeConsole]
movss xmm0, dword [0x587c3c]
ucomiss xmm0, dword [0x4fe95c]
lahf
test ah, 0x44
jp 0x4811ee
lea eax, [ebp - 0x1c4]
xorps xmm0, xmm0
push eax
movups xmmword [ebp - 0x1c4], xmm0
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
movd xmm1, dword [ebp - 0x1bc]
movd xmm2, dword [ebp - 0x1b8]
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm2, xmm2
movss dword [0x587c34], xmm1
subss xmm1, dword [0x587c44]
movss dword [0x587c38], xmm2
subss xmm2, dword [0x587c48]
mulss xmm1, dword [0x4fe9b8]
mulss xmm2, dword [0x4fe9b8]
movss dword [0x587c3c], xmm1
movss dword [0x587c40], xmm2
lea ecx, [ebp - 0x150]
call fcn.0045bb10
lea ecx, [ebp - 0x1b0]
call fcn.0045bb10
lea ecx, [ebp - 0x180]
call fcn.0045bb10
lea ecx, [ebp - 0x198]
call fcn.0045bb10
lea ecx, [ebp - 0x168]
call fcn.0045bb10
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004870f9
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret