Function at 0x458c20
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Open clipboard
Read clipboard data

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 0x4dced4
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x278
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
mov esi, dword [0x5887f0]
mov cl, 0x60
mov dword [ebp - 0xb0], 0x43960000
mov dword [ebp - 0xac], 0x43850000
mov dword [ebp - 0xe0], 0x2d434360
mov eax, dword [esi + 0x1c48]
mov dword [ebp - 0xdc], 0x300e0901
mov dword [ebp - 0xd8], 0xc050e01
mov byte [ebp - 0xd4], 0
mov byte [eax + 0xc5], 1
mov eax, dword [esi + 0x1c48]
movss xmm0, dword [eax + 0x48]
movss xmm2, dword [eax + 0x44]
subss xmm0, dword [eax + 0x94]
subss xmm2, dword [eax + 0x90]
addss xmm0, dword [0x4feab0]
addss xmm2, dword [0x4fead0]
movss dword [eax + 0x10c], xmm0
movss dword [eax + 0x108], xmm2
movss xmm1, dword [eax + 0x124]
maxss xmm1, xmm0
movss xmm0, dword [eax + 0x120]
maxss xmm0, xmm2
movss dword [eax + 0x124], xmm1
movss dword [eax + 0x120], xmm0
xor eax, eax
nop dword [eax]
xor byte [ebp + eax - 0xdf], cl
inc eax
cmp eax, 0xb
jae 0x458d35
mov cl, byte [ebp - 0xe0]
jmp 0x458d20
mov eax, dword [esi + 0x1c48]
xor edx, edx
mov byte [ebp - 0xd4], 0
mov byte [eax + 0xc5], 1
mov eax, dword [esi + 0x1c48]
mov ecx, dword [eax + 0xfc]
mov eax, dword [eax + 0x104]
push dword [eax + ecx*4 - 4]
lea ecx, [ebp - 0xdf]
call fcn.004039d0
add esp, 4
cmp dword [esi + 0x1c84], eax
jne 0x458d7d
mov dword [esi + 0x1c88], eax
cmp dword [esi + 0x1cbc], eax
jne 0x458d8c
mov byte [esi + 0x1cc0], 1
push 0
push ecx
lea ecx, [ebp - 0xb0]
mov edx, eax
push ecx
lea ecx, [ebp - 0xdf]
call fcn.0040a9a0
add esp, 0xc
cmp byte [0x509419], 0
je 0x45a5be
mov ecx, dword [0x5887f0]
mov dword [ebp - 0xcc], 0xf1f0b5d
mov dword [ebp - 0xc8], 0x10121e7d
mov dword [ebp - 0xc4], 0x14130810
mov eax, dword [ecx + 0x1c48]
mov word [ebp - 0xc0], 0x409
mov byte [ebp - 0xbe], 0
mov byte [eax + 0xc5], 1
mov eax, dword [ecx + 0x1c48]
mov cl, 0x5d
movss xmm0, dword [eax + 0x48]
movss xmm2, dword [eax + 0x44]
subss xmm0, dword [eax + 0x94]
subss xmm2, dword [eax + 0x90]
addss xmm0, dword [0x4fea78]
addss xmm2, dword [0x4feab4]
movss dword [eax + 0x10c], xmm0
movss dword [eax + 0x108], xmm2
movss xmm1, dword [eax + 0x124]
maxss xmm1, xmm0
movss xmm0, dword [eax + 0x120]
maxss xmm0, xmm2
movss dword [eax + 0x124], xmm1
movss dword [eax + 0x120], xmm0
xor eax, eax
xor byte [ebp + eax - 0xcb], cl
inc eax
cmp eax, 0xd
jae 0x458e75
mov cl, byte [ebp - 0xcc]
jmp 0x458e60
lea eax, [ebp - 0xcb]
mov byte [ebp - 0xbe], 0
push eax
call fcn.00436090
mov ecx, dword [0x5887f0]
add esp, 4
mov dword [ebp - 0x124], 0x1040f18
mov dword [ebp - 0x120], 0x5c5d020d
mov word [ebp - 0x11c], 0x5d
mov eax, dword [ecx + 0x1c48]
mov byte [eax + 0xc5], 1
mov eax, dword [ecx + 0x1c48]
xor ecx, ecx
movss xmm0, dword [eax + 0x48]
subss xmm0, dword [eax + 0x94]
movss xmm2, dword [eax + 0x44]
subss xmm2, dword [eax + 0x90]
addss xmm0, dword [0x4fea88]
addss xmm2, dword [0x4fea94]
movss dword [eax + 0x10c], xmm0
movss dword [eax + 0x108], xmm2
movss xmm1, dword [eax + 0x124]
maxss xmm1, xmm0
movss xmm0, dword [eax + 0x120]
maxss xmm0, xmm2
movss dword [eax + 0x124], xmm1
movss dword [eax + 0x120], xmm0
movaps xmm0, xmmword [0x4ff5c0]
movups xmmword [ebp - 0x134], xmm0
nop dword [eax]
nop word [eax + eax]
mov al, byte [ebp - 0x134]
xor byte [ebp + ecx - 0x133], al
inc ecx
cmp ecx, 0x18
jb 0x458f40
lea eax, [ebp - 0x133]
mov byte [ebp - 0x11b], 0
push eax
call fcn.00435f70
mov esi, dword [0x5887f0]
add esp, 4
mov dword [ebp - 0xb4], 0xb
mov eax, dword [esi + 0x1c48]
lea ecx, [esi + 0x1d7c]
mov byte [eax + 0xc5], 1
mov eax, dword [esi + 0x1c48]
movss xmm0, dword [eax + 0x48]
subss xmm0, dword [eax + 0x94]
movss xmm2, dword [eax + 0x44]
subss xmm2, dword [eax + 0x90]
addss xmm0, dword [0x4feac8]
addss xmm2, dword [0x4fea7c]
movss dword [eax + 0x10c], xmm0
movss dword [eax + 0x108], xmm2
movss xmm1, dword [eax + 0x124]
maxss xmm1, xmm0
movss xmm0, dword [eax + 0x120]
maxss xmm0, xmm2
movss dword [eax + 0x124], xmm1
movss dword [eax + 0x120], xmm0
lea eax, [ebp - 0xb4]
movss xmm0, dword [esi + 0x15d8]
push eax
movss dword [ebp - 0xb0], xmm0
call fcn.00420fd0
mov al, byte [0x588852]
mov dword [esi + 0x15d8], 0x40400000
test al, al
jne 0x45a50a
mov edi, dword [0x5887f0]
mov eax, edi
mov dword [ebp - 0xd8], eax
mov eax, dword [eax + 0x1c48]
mov ecx, dword [eax + 0x1f8]
lea esi, [eax + 0x1f4]
mov dword [ebp - 0xe4], eax
mov eax, dword [esi]
cmp eax, ecx
jne 0x45907d
lea edi, [eax + 1]
test ecx, ecx
je 0x459065
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x45906a
mov eax, 8
cmp eax, edi
mov ecx, esi
cmovg edi, eax
push edi
call fcn.00421330
mov edi, dword [0x5887f0]
mov edx, dword [esi]
mov ecx, dword [esi + 8]
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x1ec]
mov dword [ecx + edx*4], eax
inc dword [esi]
mov eax, dword [ebp - 0xe4]
mov dword [eax + 0x1ec], 0x43820000
mov eax, dword [ebp - 0xd8]
and dword [eax + 0x1d5c], 0xfffffffe
mov eax, dword [edi + 0x1c48]
mov byte [eax + 0xc5], 1
mov eax, dword [edi + 0x1c48]
movss xmm0, dword [eax + 0x48]
subss xmm0, dword [eax + 0x94]
movss xmm2, dword [eax + 0x44]
subss xmm2, dword [eax + 0x90]
addss xmm0, dword [0x4feaa0]
addss xmm2, dword [0x4fea7c]
movss dword [eax + 0x10c], xmm0
movss dword [eax + 0x108], xmm2
movss xmm1, dword [eax + 0x124]
maxss xmm1, xmm0
movss xmm0, dword [eax + 0x120]
maxss xmm0, xmm2
movss dword [eax + 0x124], xmm1
movss dword [eax + 0x120], xmm0
xorps xmm0, xmm0
movups xmmword [ebp - 0x2c], xmm0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
xor ecx, ecx
mov dword [ebp - 4], 0
cmp byte [0x509418], cl
je 0x4591a2
movaps xmm0, xmmword [str._nEL_H_rIH_rLYD_L]
movups xmmword [ebp - 0xfc], xmm0
mov dword [ebp - 0xec], 0x428eee8a
mov byte [ebp - 0xe8], cl
nop dword [eax]
mov al, byte [ebp - 0xfc]
xor byte [ebp + ecx - 0xfb], al
inc ecx
cmp ecx, 0x13
jb 0x459170
lea ecx, [ebp - 0xfb]
mov byte [ebp - 0xe8], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x459193
lea eax, [ebp - 0xfb]
jmp 0x4591e0
movaps xmm0, xmmword [0x4fec40]
movups xmmword [ebp - 0xcc], xmm0
mov al, byte [ebp - 0xcc]
xor byte [ebp + ecx - 0xcb], al
inc ecx
cmp ecx, 0xe
jb 0x4591b0
lea ecx, [ebp - 0xcb]
mov byte [ebp - 0xbd], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4591d3
lea eax, [ebp - 0xcb]
sub ecx, edx
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.0045bdb0
cmp dword [ebp - 0x18], 0xf
lea eax, [ebp - 0x2c]
cmova eax, dword [ebp - 0x2c]
push eax
call fcn.00436090
movss xmm1, dword [0x4fea38]
add esp, 4
xorps xmm0, xmm0
call fcn.004114c0
cmp byte [0x509418], 0
lea edx, [ebp - 0xb0]
push ecx
mov dword [ebp - 0xb0], 0
mov ecx, str.Colar
mov dword [ebp - 0xac], 0
jne 0x45923e
mov ecx, str.Paste
call fcn.00436740
add esp, 4
test al, al
je 0x459294
push 0
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x459294
push 1
call dword [sym.imp.USER32.dll_GetClipboardData]
mov esi, eax
test esi, esi
je 0x45928e
push esi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
test eax, eax
je 0x45928e
push 0x20
push eax
push 0x587ce5
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
add esp, 0xc
mov byte [0x587d05], 0
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
call dword [sym.imp.USER32.dll_CloseClipboard]
mov ecx, dword [0x5887f0]
mov dh, 0x6f
push 0
push 0
push 0x2000
mov eax, dword [ecx + 0x1c48]
mov dl, 0x24
xor dl, dh
mov byte [ebp - 0xb0], dh
mov byte [ebp - 0xad], dl
mov byte [ebp - 0xaa], 0
mov byte [eax + 0xc5], 1
mov eax, dword [ecx + 0x1c48]
mov ch, 0x16
xor ch, dh
mov byte [ebp - 0xaa], 0
mov byte [ebp - 0xab], ch
mov dword [ebp - 0xdc], 0
movss xmm0, dword [eax + 0x48]
movss xmm2, dword [eax + 0x44]
subss xmm0, dword [eax + 0x94]
subss xmm2, dword [eax + 0x90]
mov dword [ebp - 0xd8], 0
addss xmm0, dword [0x4feaa4]
addss xmm2, dword [0x4fea78]
movss dword [eax + 0x10c], xmm0
movss dword [eax + 0x108], xmm2
movss xmm1, dword [eax + 0x124]
maxss xmm1, xmm0
movss xmm0, dword [eax + 0x120]
maxss xmm0, xmm2
movss dword [eax + 0x124], xmm1
movss dword [eax + 0x120], xmm0
mov al, 0x4c
mov cl, al
mov ah, 0xa
xor al, dh
xor ah, dh
mov byte [ebp - 0xaf], al
xor cl, dh
mov byte [ebp - 0xac], ah
xor edx, edx
lea eax, [ebp - 0xdc]
mov byte [ebp - 0xae], cl
push eax
push 0x21
push 0x587ce5
lea ecx, [ebp - 0xaf]
call fcn.0043a610
mov ecx, dword [0x5887f0]
add esp, 0x18
mov eax, dword [ecx + 0x1c48]
mov byte [eax + 0xc5], 1
mov eax, dword [ecx + 0x1c48]
movss xmm0, dword [eax + 0x48]
subss xmm0, dword [eax + 0x94]
movss xmm2, dword [eax + 0x44]
subss xmm2, dword [eax + 0x90]
addss xmm0, dword [0x4feac0]
addss xmm2, dword [0x4fea7c]
movss dword [eax + 0x10c], xmm0
movss dword [eax + 0x108], xmm2
movss xmm1, dword [eax + 0x124]
maxss xmm1, xmm0
movss xmm0, dword [eax + 0x120]
maxss xmm0, xmm2
movss dword [eax + 0x124], xmm1
movss dword [eax + 0x120], xmm0
xorps xmm0, xmm0
movups xmmword [ebp - 0x44], xmm0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
xor ecx, ecx
mov byte [ebp - 4], 1
cmp byte [0x509418], cl
je 0x459492
movaps xmm0, xmmword [0x4ffd10]
movups xmmword [ebp - 0xfc], xmm0
mov dword [ebp - 0xec], 0xe0823432
mov dword [ebp - 0xe8], 0x2e2833
nop word [eax + eax]
mov al, byte [ebp - 0xfc]
xor byte [ebp + ecx - 0xfb], al
inc ecx
cmp ecx, 0x16
jb 0x459460
lea ecx, [ebp - 0xfb]
mov byte [ebp - 0xe5], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x459483
lea eax, [ebp - 0xfb]
jmp 0x4594e0
movaps xmm0, xmmword [0x4ff010]
movups xmmword [ebp - 0xcc], xmm0
mov byte [ebp - 0xbc], 0
nop word [eax + eax]
mov al, byte [ebp - 0xcc]
xor byte [ebp + ecx - 0xcb], al
inc ecx
cmp ecx, 0xf
jb 0x4594b0
lea ecx, [ebp - 0xcb]
mov byte [ebp - 0xbc], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4594d3
lea eax, [ebp - 0xcb]
sub ecx, edx
push ecx
push eax
lea ecx, [ebp - 0x44]
call fcn.0045bdb0
cmp dword [ebp - 0x30], 0xf
lea eax, [ebp - 0x44]
cmova eax, dword [ebp - 0x44]
push eax
call fcn.00436090
mov ecx, dword [0x5887f0]
add esp, 4
mov byte [ebp - 0xe0], 0x49
mov dl, 0x1c
mov byte [ebp - 0xb5], 0x27
mov dh, 0x3b
mov byte [ebp - 0xcd], 0x28
mov eax, dword [ecx + 0x1c48]
mov byte [ebp - 0xa6], 0x24
push 0
push 0
mov byte [eax + 0xc5], 1
mov eax, dword [ecx + 0x1c48]
mov ch, 0x2c
mov byte [ebp - 0xa5], ch
push 0x2000
mov byte [ebp - 0xd5], 0
movss xmm0, dword [eax + 0x48]
movss xmm2, dword [eax + 0x44]
subss xmm0, dword [eax + 0x94]
subss xmm2, dword [eax + 0x90]
mov byte [ebp - 0xd5], 0
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xac], 0
addss xmm0, dword [0x4feac4]
addss xmm2, dword [0x4fea7c]
movss dword [eax + 0x10c], xmm0
movss dword [eax + 0x108], xmm2
movss xmm1, dword [eax + 0x124]
maxss xmm1, xmm0
movss xmm0, dword [eax + 0x120]
maxss xmm0, xmm2
movss dword [eax + 0x124], xmm1
movss dword [eax + 0x120], xmm0
mov al, 0x6a
mov cl, al
mov ah, 0x3a
xor al, byte [ebp - 0xe0]
xor cl, byte [ebp - 0xe0]
mov byte [ebp - 0xdf], al
mov al, byte [ebp - 0xb5]
mov byte [ebp - 0xde], cl
mov cl, byte [ebp - 0xe0]
xor al, cl
xor ah, cl
mov byte [ebp - 0xd9], al
xor dl, cl
mov al, byte [ebp - 0xcd]
xor dh, cl
xor al, cl
mov byte [ebp - 0xdc], ah
mov byte [ebp - 0xd8], al
xor ch, cl
mov al, byte [ebp - 0xa6]
xor al, cl
mov byte [ebp - 0xdd], dl
mov byte [ebp - 0xd7], al
mov al, byte [ebp - 0xa5]
xor al, cl
mov byte [ebp - 0xdb], ch
mov byte [ebp - 0xd6], al
lea ecx, [ebp - 0xdf]
lea eax, [ebp - 0xb0]
mov byte [ebp - 0xda], dh
push eax
push 0x20
push 0x587c51
xor edx, edx
call fcn.0043a610
add esp, 0x18
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x30]
cmp ecx, 0xf
jbe 0x45969c
mov edx, dword [ebp - 0x44]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x459692
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4596db
push ecx
push edx
call fcn.00487522
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
cmp ecx, 0xf
jbe 0x4596eb
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4596e1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4596e1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.00487522
add esp, 8
mov esi, dword [0x5887f0]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
mov eax, dword [esi + 0x1c48]
mov byte [eax + 0xc5], 1
mov edx, dword [esi + 0x1c48]
mov ecx, dword [edx + 0x1f4]
mov eax, dword [edx + 0x1fc]
mov eax, dword [eax + ecx*4 - 4]
mov dword [edx + 0x1ec], eax
lea eax, [ecx - 1]
mov dword [edx + 0x1f4], eax
mov eax, dword [esi + 0x1c48]
mov byte [eax + 0xc5], 1
mov eax, dword [esi + 0x1c48]
movss xmm0, dword [eax + 0x48]
subss xmm0, dword [eax + 0x94]
movss xmm2, dword [eax + 0x44]
subss xmm2, dword [eax + 0x90]
addss xmm0, dword [0x4feac8]
addss xmm2, dword [0x4fea7c]
movss dword [eax + 0x10c], xmm0
movss dword [eax + 0x108], xmm2
movss xmm1, dword [eax + 0x124]
maxss xmm1, xmm0
movss xmm0, dword [eax + 0x120]
maxss xmm0, xmm2
movss dword [eax + 0x124], xmm1
movss dword [eax + 0x120], xmm0
xorps xmm0, xmm0
movups xmmword [ebp - 0x5c], xmm0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0xf
mov byte [ebp - 0x5c], 0
mov dword [ebp - 4], 2
cmp byte [0x509418], 0
je 0x459892
mov byte [ebp - 0xb4], 0x5f
mov cl, 0x3a
xor cl, byte [ebp - 0xb4]
mov al, 0xd
xor al, byte [ebp - 0xb4]
mov ch, 0x2c
mov byte [ebp - 0xb3], al
mov dl, 0x38
mov byte [ebp - 0xb2], cl
mov dh, 0x2b
mov cl, byte [ebp - 0xb4]
mov ah, 0x36
mov byte [ebp - 0xa5], 0x2d
xor dl, cl
mov al, byte [ebp - 0xa5]
xor ch, cl
xor al, cl
mov byte [ebp - 0xa6], 0x3e
mov byte [ebp - 0xad], al
xor dh, cl
mov al, byte [ebp - 0xa6]
xor ah, cl
xor al, cl
mov byte [ebp - 0xcd], 0x2d
mov byte [ebp - 0xac], al
mov al, byte [ebp - 0xcd]
xor al, cl
mov byte [ebp - 0xaf], ch
lea ecx, [ebp - 0xb3]
mov byte [ebp - 0xaa], 0
mov byte [ebp - 0xb1], dl
mov byte [ebp - 0xae], dh
lea edx, [ecx + 1]
mov byte [ebp - 0xb0], ah
mov byte [ebp - 0xab], al
mov byte [ebp - 0xaa], 0
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x459880
lea eax, [ebp - 0xb3]
jmp 0x459930
mov cl, 0x77
mov byte [ebp - 0xb4], 0x12
mov byte [ebp - 0xa5], cl
mov al, 0x40
xor al, byte [ebp - 0xb4]
mov ch, 0x61
xor cl, byte [ebp - 0xb4]
mov dl, 0x75
mov byte [ebp - 0xb3], al
mov dh, 0x66
mov al, byte [ebp - 0xa5]
mov ah, 0x7b
mov byte [ebp - 0xb2], cl
mov cl, byte [ebp - 0xb4]
xor al, cl
mov byte [ebp - 0xa6], 0x60
xor dl, cl
mov byte [ebp - 0xad], al
mov al, byte [ebp - 0xa6]
xor ch, cl
xor dh, cl
mov byte [ebp - 0xaf], ch
xor ah, cl
mov byte [ebp - 0xab], 0
xor al, cl
mov byte [ebp - 0xb1], dl
lea ecx, [ebp - 0xb3]
mov byte [ebp - 0xae], dh
mov byte [ebp - 0xb0], ah
lea edx, [ecx + 1]
mov byte [ebp - 0xac], al
mov byte [ebp - 0xab], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x459923
lea eax, [ebp - 0xb3]
sub ecx, edx
push ecx
push eax
lea ecx, [ebp - 0x5c]
call fcn.0045bdb0
cmp dword [ebp - 0x48], 0xf
lea ecx, [ebp - 0x5c]
lea edx, [ebp - 0xb0]
mov dword [ebp - 0xb0], 0x43820000
cmova ecx, dword [ebp - 0x5c]
push ecx
mov dword [ebp - 0xac], 0x41f00000
call fcn.00436740
add esp, 4
test al, al
je 0x45a4b6
mov ecx, 0x587ce5
mov byte [ebp - 0xb5], 1
xor esi, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x459983
mov edi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isspace]
sub ecx, edx
je 0x4599c6
movsx eax, byte [esi + 0x587ce5]
push eax
call edi
add esp, 4
test eax, eax
je 0x4599bf
mov ecx, 0x587ce5
inc esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4599b0
sub ecx, edx
cmp esi, ecx
jb 0x459994
jmp 0x4599c6
mov byte [ebp - 0xb5], 0
mov ecx, 0x587c51
mov dl, 1
mov byte [ebp - 0xa5], dl
xor esi, esi
lea eax, [ecx + 1]
mov dword [ebp - 0xd8], eax
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4599e0
sub ecx, dword [ebp - 0xd8]
je 0x459a27
nop
movsx eax, byte [esi + 0x587c51]
push eax
call edi
add esp, 4
test eax, eax
je 0x459a25
mov ecx, 0x587c51
inc esi
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x459a10
sub ecx, edx
cmp esi, ecx
jb 0x4599f0
mov dl, byte [ebp - 0xa5]
jmp 0x459a27
xor dl, dl
cmp byte [ebp - 0xb5], 0
je 0x459b44
cmp byte [0x509418], 0
je 0x459ac2
movaps xmm0, xmmword [0x500c80]
xor ecx, ecx
movups xmmword [ebp - 0xfc], xmm0
mov dword [ebp - 0xec], 0x71796a71
mov word [ebp - 0xe8], 0x31
nop dword [eax]
nop dword [eax + eax]
mov al, byte [ebp - 0xfc]
xor byte [ebp + ecx - 0xfb], al
inc ecx
cmp ecx, 0x14
jb 0x459a70
sub esp, 0x18
mov byte [ebp - 0xe7], 0
mov edx, esp
lea ecx, [ebp - 0xfb]
xorps xmm0, xmm0
lea esi, [ecx + 1]
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x459ab0
lea eax, [ebp - 0xfb]
jmp 0x459c2d
mov cl, 0x55
mov dword [ebp - 0xcc], 0x2c301e55
mov dword [ebp - 0xc8], 0x75263c75
xor eax, eax
mov dword [ebp - 0xc4], 0x21253830
mov word [ebp - 0xc0], 0x742c
mov byte [ebp - 0xbe], 0
xor byte [ebp + eax - 0xcb], cl
inc eax
cmp eax, 0xd
jae 0x459b09
mov cl, byte [ebp - 0xcc]
jmp 0x459af4
sub esp, 0x18
mov byte [ebp - 0xbe], 0
mov edx, esp
lea ecx, [ebp - 0xcb]
xorps xmm0, xmm0
lea esi, [ecx + 1]
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x459b32
lea eax, [ebp - 0xcb]
jmp 0x459c2d
test dl, dl
je 0x459c45
xor ecx, ecx
cmp byte [0x509418], cl
je 0x459bcf
movaps xmm0, xmmword [0x5013a0]
movups xmmword [ebp - 0x118], xmm0
mov dword [ebp - 0x108], 0x4f580e8f
mov dword [ebp - 0x104], 0xf414754
mov byte [ebp - 0x100], cl
mov al, byte [ebp - 0x118]
xor byte [ebp + ecx - 0x117], al
inc ecx
cmp ecx, 0x17
jb 0x459b82
sub esp, 0x18
mov byte [ebp - 0x100], 0
mov edx, esp
lea ecx, [ebp - 0x117]
xorps xmm0, xmm0
lea esi, [ecx + 1]
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x459bc0
lea eax, [ebp - 0x117]
jmp 0x459c2d
movaps xmm0, xmmword [0x4fec10]
movups xmmword [ebp - 0xcc], xmm0
nop dword [eax]
mov al, byte [ebp - 0xcc]
xor byte [ebp + ecx - 0xcb], al
inc ecx
cmp ecx, 0xe
jb 0x459be0
sub esp, 0x18
mov byte [ebp - 0xbd], 0
mov edx, esp
lea ecx, [ebp - 0xcb]
xorps xmm0, xmm0
lea esi, [ecx + 1]
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x459c20
lea eax, [ebp - 0xcb]
sub ecx, esi
push ecx
push eax
mov ecx, edx
call fcn.0045c380
call fcn.00442680
add esp, 0x18
jmp 0x45a4b6
xorps xmm0, xmm0
mov dword [ebp - 0x7c], 0
movups xmmword [ebp - 0x8c], xmm0
mov dword [ebp - 0x78], 0xf
mov byte [ebp - 0x8c], 0
mov ecx, 0x587c51
mov byte [ebp - 4], 3
movups xmmword [ebp - 0xa4], xmm0
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x90], 0
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x459c90
sub ecx, edx
push ecx
push 0x587c51
lea ecx, [ebp - 0xa4]
call fcn.0045c380
mov ecx, 0x587ce5
mov byte [ebp - 4], 4
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x459cb6
sub ecx, edx
push ecx
push 0x587ce5
lea ecx, [ebp - 0x8c]
call fcn.0045bdb0
mov dl, 0x52
mov byte [ebp - 0xe1], 0
mov al, 0x70
mov byte [ebp - 0xe4], dl
mov cl, 0x2f
mov byte [ebp - 0xe1], 0
xor al, dl
sub esp, 0x18
xor cl, dl
mov byte [ebp - 0xe3], al
mov byte [ebp - 0xe2], cl
lea eax, [ebp - 0x8c]
mov ecx, esp
push eax
call fcn.0045bc70
lea ecx, [ebp - 0x1f4]
call fcn.00460350
add esp, 0x18
mov dword [ebp - 0xd8], eax
mov byte [ebp - 4], 5
mov cl, 0x2c
mov dword [ebp - 0x3c], 0xc000e2c
xor eax, eax
mov dword [ebp - 0x38], 0x4e5a5c0e
mov dword [ebp - 0x34], 0xe0c160e
mov byte [ebp - 0x30], 0
xor byte [ebp + eax - 0x3b], cl
inc eax
cmp eax, 0xb
jae 0x459d4f
mov cl, byte [ebp - 0x3c]
jmp 0x459d40
sub esp, 0x18
mov byte [ebp - 0x30], 0
lea eax, [ebp - 0xa4]
mov ecx, esp
push eax
call fcn.0045bc70
lea ecx, [ebp - 0x1dc]
call fcn.00460350
add esp, 0x18
mov edi, eax
mov byte [ebp - 4], 6
mov cl, 0x6d
mov dword [ebp - 0xcc], 0x4d414f6d
xor eax, eax
mov dword [ebp - 0xc8], 0x1b050b4f
mov dword [ebp - 0xc4], 0x4d574f04
mov word [ebp - 0xc0], 0x4f
xor byte [ebp + eax - 0xcb], cl
inc eax
cmp eax, 0xc
jae 0x459db8
mov cl, byte [ebp - 0xcc]
jmp 0x459da3
sub esp, 0x18
mov byte [ebp - 0xbf], 0
mov ecx, esp
call fcn.004605e0
lea ecx, [ebp - 0x1c4]
call fcn.00460350
add esp, 0x18
mov esi, eax
mov byte [ebp - 4], 7
mov cl, 0x41
mov dword [ebp - 0x24], 0x616d6341
xor eax, eax
mov dword [ebp - 0x20], 0x393b2f63
mov dword [ebp - 0x1c], 0x63617b63
mov byte [ebp - 0x18], 0
nop word [eax + eax]
xor byte [ebp + eax - 0x23], cl
inc eax
cmp eax, 0xb
jae 0x459e0f
mov cl, byte [ebp - 0x24]
jmp 0x459e00
sub esp, 0x18
mov byte [ebp - 0x18], 0
lea eax, [ebp - 0x8c]
mov ecx, esp
push eax
call fcn.0045bc70
lea ecx, [ebp - 0x1ac]
call fcn.00460350
add esp, 0x18
mov edx, eax
mov byte [ebp - 4], 8
xor ecx, ecx
movaps xmm0, xmmword [0x500c00]
movups xmmword [ebp - 0xf8], xmm0
mov byte [ebp - 0xe8], 0
nop
mov al, byte [ebp - 0xf8]
xor byte [ebp + ecx - 0xf7], al
inc ecx
cmp ecx, 0xf
jb 0x459e50
push edx
lea edx, [ebp - 0xf7]
mov byte [ebp - 0xe8], 0
lea ecx, [ebp - 0x194]
call fcn.0045bf50
add esp, 4
lea ecx, [ebp - 0x23]
mov byte [ebp - 4], 9
push ecx
mov ecx, eax
call fcn.0045b9a0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x118], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x108], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push esi
lea eax, [ebp - 0x118]
mov byte [ebp - 4], 0xa
push eax
push dword [ebp - 0xac]
lea ecx, [ebp - 0x17c]
call fcn.0045c610
lea eax, [ebp - 0xcb]
mov byte [ebp - 4], 0xb
push eax
lea ecx, [ebp - 0x17c]
call fcn.0045b9a0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x288], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x278], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
push edi
lea eax, [ebp - 0x288]
mov byte [ebp - 4], 0xc
push eax
push dword [ebp - 0xac]
lea ecx, [ebp - 0x164]
call fcn.0045c610
lea eax, [ebp - 0x3b]
mov byte [ebp - 4], 0xd
push eax
lea ecx, [ebp - 0x164]
call fcn.0045b9a0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x270], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x260], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0xe
lea eax, [ebp - 0x270]
push dword [ebp - 0xd8]
lea ecx, [ebp - 0x14c]
push eax
push dword [ebp - 0xac]
call fcn.0045c610
lea eax, [ebp - 0xe3]
mov byte [ebp - 4], 0xf
push eax
lea ecx, [ebp - 0x14c]
call fcn.0045b9a0
xorps xmm0, xmm0
mov dword [ebp - 0x64], 0
movups xmmword [ebp - 0x74], xmm0
mov dword [ebp - 0x60], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x74], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x64], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x138]
cmp ecx, 0xf
jbe 0x45a016
mov edx, dword [ebp - 0x14c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45a00c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45a32d
push ecx
push edx
call fcn.00487522
add esp, 8
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x138], 0xf
mov byte [ebp - 0x14c], 0
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x25c]
cmp ecx, 0xf
jbe 0x45a06f
mov edx, dword [ebp - 0x270]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45a065
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45a32d
push ecx
push edx
call fcn.00487522
add esp, 8
mov byte [ebp - 4], 0x13
mov ecx, dword [ebp - 0x150]
cmp ecx, 0xf
jbe 0x45a0ad
mov edx, dword [ebp - 0x164]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45a0a3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45a32d
push ecx
push edx
call fcn.00487522
add esp, 8
mov dword [ebp - 0x154], 0
mov dword [ebp - 0x150], 0xf
mov byte [ebp - 0x164], 0
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x274]
cmp ecx, 0xf
jbe 0x45a106
mov edx, dword [ebp - 0x288]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45a0fc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45a32d
push ecx
push edx
call fcn.00487522
add esp, 8
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x168]
cmp ecx, 0xf
jbe 0x45a144
mov edx, dword [ebp - 0x17c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45a13a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45a32d
push ecx
push edx
call fcn.00487522
add esp, 8
mov dword [ebp - 0x16c], 0
mov dword [ebp - 0x168], 0xf
mov byte [ebp - 0x17c], 0
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0x104]
cmp ecx, 0xf
jbe 0x45a19d
mov edx, dword [ebp - 0x118]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45a193
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45a32d
push ecx
push edx
call fcn.00487522
add esp, 8
mov byte [ebp - 4], 0x17
mov ecx, dword [ebp - 0x180]
cmp ecx, 0xf
jbe 0x45a1db
mov edx, dword [ebp - 0x194]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45a1d1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45a32d
push ecx
push edx
call fcn.00487522
add esp, 8
mov dword [ebp - 0x184], 0
mov dword [ebp - 0x180], 0xf
mov byte [ebp - 0x194], 0
mov byte [ebp - 4], 0x18
mov ecx, dword [ebp - 0x198]
cmp ecx, 0xf
jbe 0x45a234
mov edx, dword [ebp - 0x1ac]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45a22a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45a32d
push ecx
push edx
call fcn.00487522
add esp, 8
mov dword [ebp - 0x19c], 0
mov dword [ebp - 0x198], 0xf
mov byte [ebp - 0x1ac], 0
mov byte [ebp - 4], 0x19
mov ecx, dword [ebp - 0x1b0]
cmp ecx, 0xf
jbe 0x45a28d
mov edx, dword [ebp - 0x1c4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45a283
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45a32d
push ecx
push edx
call fcn.00487522
add esp, 8
mov dword [ebp - 0x1b4], 0
mov dword [ebp - 0x1b0], 0xf
mov byte [ebp - 0x1c4], 0
mov byte [ebp - 4], 0x1a
mov ecx, dword [ebp - 0x1c8]
cmp ecx, 0xf
jbe 0x45a2e2
mov edx, dword [ebp - 0x1dc]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45a2d8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45a32d
push ecx
push edx
call fcn.00487522
add esp, 8
mov dword [ebp - 0x1cc], 0
mov dword [ebp - 0x1c8], 0xf
mov byte [ebp - 0x1dc], 0
mov byte [ebp - 4], 0x1b
mov ecx, dword [ebp - 0x1e0]
cmp ecx, 0xf
jbe 0x45a33d
mov edx, dword [ebp - 0x1f4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45a333
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x45a333
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.00487522
add esp, 8
movaps xmm0, xmmword [0x5008f0]
lea edx, [ebp - 0x74]
cmp dword [ebp - 0x60], 0xf
movups xmmword [ebp - 0x258], xmm0
cmova edx, dword [ebp - 0x74]
xor ecx, ecx
movaps xmm0, xmmword [0x500410]
movups xmmword [ebp - 0x248], xmm0
mov dword [ebp - 0x1e4], 0
movaps xmm0, xmmword [0x4ff120]
movups xmmword [ebp - 0x238], xmm0
mov dword [ebp - 0x1e0], 0xf
movaps xmm0, xmmword [0x4ff170]
movups xmmword [ebp - 0x228], xmm0
mov byte [ebp - 0x1f4], 0
movaps xmm0, xmmword [0x5002d0]
movups xmmword [ebp - 0x218], xmm0
mov dword [ebp - 0x208], 0x4b413e48
mov dword [ebp - 0x204], 0x4b2c4f1c
mov dword [ebp - 0x200], 0xb4f4d4c
mov byte [ebp - 0x1fc], 0
mov al, byte [ebp - 0x258]
xor byte [ebp + ecx - 0x257], al
inc ecx
cmp ecx, 0x5b
jb 0x45a3d0
lea ecx, [ebp - 0x257]
mov byte [ebp - 0x1fc], 0
call fcn.004794a0
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x60]
cmp ecx, 0xf
jbe 0x45a42d
mov edx, dword [ebp - 0x74]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45a423
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45a4a6
push ecx
push edx
call fcn.00487522
add esp, 8
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x90]
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0xf
mov byte [ebp - 0x74], 0
cmp ecx, 0xf
jbe 0x45a479
mov edx, dword [ebp - 0xa4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45a46f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45a4a6
push ecx
push edx
call fcn.00487522
add esp, 8
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x78]
cmp ecx, 0xf
jbe 0x45a4b6
mov edx, dword [ebp - 0x8c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45a4ac
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x45a4ac
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.00487522
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x48]
cmp ecx, 0xf
jbe 0x45a4f3
mov edx, dword [ebp - 0x5c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45a4e9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x45a4e9
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.00487522
add esp, 8
mov al, byte [0x588852]
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0xf
mov byte [ebp - 0x5c], 0
cmp al, 1
jne 0x45a5b4
mov ecx, dword [0x5887f0]
mov dword [ebp - 0xb0], 0x43660000
mov dword [ebp - 0xac], 0x41a00000
mov eax, dword [ecx + 0x1c48]
mov byte [eax + 0xc5], 1
mov eax, dword [ecx + 0x1c48]
lea ecx, [ebp - 0xb0]
movss xmm0, dword [eax + 0x44]
subss xmm0, dword [eax + 0x90]
movss xmm2, dword [eax + 0x48]
subss xmm2, dword [eax + 0x94]
addss xmm0, dword [0x4fea7c]
addss xmm2, dword [0x4feacc]
movss dword [eax + 0x108], xmm0
movss dword [eax + 0x10c], xmm2
movss xmm1, dword [eax + 0x120]
maxss xmm1, xmm0
movss xmm0, dword [eax + 0x124]
maxss xmm0, xmm2
movss dword [eax + 0x120], xmm1
movss dword [eax + 0x124], xmm0
movss xmm0, dword [0x588848]
call fcn.004379c0
mov ecx, 1
call fcn.00404470
call fcn.0040aba0
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