Function at 0x4adf50
Capabilities:
Authenticate hmac
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x64
mov eax, dword [0x4d900c]
xor eax, esp
mov dword [esp + 0x5c], eax
cmp byte [0x4d97c7], 0
push ebx
push ebp
mov ebp, dword [0x4d97c0]
push esi
push edi
je 0x4ae55d
lea eax, [ecx - 0x334]
cmp eax, 0x16
ja 0x4adfab
lea eax, [edx - 0x14]
cmp eax, 0x14
ja 0x4adfab
mov dword [0x4d97c0], 2
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x4af7c0
lea eax, [ecx - 0x316]
cmp eax, 0x12
ja 0x4ae179
cmp edx, 0x14
jl 0x4ae179
cmp edx, 0x28
jg 0x4ae179
mov byte [esp + 0x14], 0x4d
mov al, 0x29
xor al, byte [esp + 0x14]
mov ah, 1
mov ch, ah
mov byte [esp + 0x15], al
mov al, byte [esp + 0x14]
mov cl, 0x7e
xor cl, al
mov byte [esp + 0x1d], 0
xor ch, al
mov byte [esp + 0x16], cl
mov dl, 0x20
mov byte [esp + 0x1a], ch
mov dh, 0x7a
mov byte [esp + 0x1d], 0
mov bl, 0x39
mov dword [esp + 0x64], 0
xor dl, al
mov dword [esp + 0x68], 0
xor dh, al
mov byte [esp + 0x17], dl
mov bh, 5
mov byte [esp + 0x1b], dh
xor bl, al
lea ecx, [esp + 0x15]
xor ah, al
mov byte [esp + 0x18], bl
xor bh, al
mov byte [esp + 0x19], ah
xorps xmm0, xmm0
mov byte [esp + 0x1c], bh
movups xmmword [esp + 0x54], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4ae040
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x5c]
call fcn.004b7120
mov byte [esp + 0x14], 0x1a
mov al, 0x72
xor al, byte [esp + 0x14]
mov ah, 0x74
mov byte [esp + 0x15], al
mov cl, 0x2e
mov al, byte [esp + 0x14]
mov dl, 0x4b
xor ah, al
mov byte [esp + 0x1d], 0
mov ch, 0x79
mov byte [esp + 0x19], ah
mov dh, 0x59
mov byte [esp + 0x1d], 0
xor cl, al
xor ch, al
mov bl, 0x7d
mov byte [esp + 0x16], cl
mov bh, 0x73
mov byte [esp + 0x1a], ch
xor dl, al
lea ecx, [esp + 0x54]
xor bl, al
mov byte [esp + 0x17], dl
xor dh, al
mov byte [esp + 0x18], bl
xor bh, al
mov byte [esp + 0x1b], dh
lea eax, [esp + 0x15]
mov byte [esp + 0x1c], bh
push eax
call fcn.004b5e20
mov al, 0x65
mov byte [esp + 0x14], 0x2f
mov ah, al
mov byte [esp + 0x1d], 0
xor al, byte [esp + 0x14]
mov bl, 0x4a
mov byte [esp + 0x15], al
mov cl, 0x1a
mov al, byte [esp + 0x14]
mov dl, 0x7a
xor ah, al
mov byte [esp + 0x1d], 0
mov ch, 0x5a
mov byte [esp + 0x19], ah
mov dh, 0x41
mov bh, bl
xor cl, al
xor ch, al
xor dl, al
mov byte [esp + 0x16], cl
xor bl, al
mov byte [esp + 0x1a], ch
xor dh, al
mov byte [esp + 0x17], dl
xor bh, al
mov byte [esp + 0x18], bl
lea eax, [esp + 0x15]
mov byte [esp + 0x1b], dh
push eax
lea ecx, [esp + 0x58]
mov byte [esp + 0x20], bh
call fcn.004b5e20
mov ecx, dword [esp + 0x68]
cmp ecx, 0x10
jb 0x4ae156
mov edx, dword [esp + 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4ae14c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4ae14c
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.004c8a1d
add esp, 8
push 0x7f00
push 0
mov dword [0x4d97c0], 3
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x4af7c0
lea eax, [ecx - 0x8f]
lea esi, [edx - 0x1a]
cmp eax, 0x114
ja 0x4ae1b1
cmp esi, 0x28
ja 0x4ae1b1
push 0x7f00
push 0
mov dword [0x4d97c0], 4
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x4af7c0
lea eax, [ecx - 0x1b2]
cmp eax, 0x28
ja 0x4ae1e4
cmp esi, 0x28
ja 0x4ae1e4
push 0x7f00
push 0
mov dword [0x4d97c0], 5
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x4af7c0
lea eax, [ecx - 0x204]
lea esi, [edx - 0x22]
cmp eax, 0x1a
ja 0x4ae21a
cmp esi, 0x1a
ja 0x4ae21a
push 0x7f00
push 0
mov dword [0x4d97c0], 0x3f3
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x4af7c0
lea eax, [ecx - 0x22f]
cmp eax, 0x1a
ja 0x4ae24d
cmp esi, 0x1a
ja 0x4ae24d
push 0x7f00
push 0
mov dword [0x4d97c0], 0x3f4
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x4af7c0
lea eax, [ecx - 0x25a]
cmp eax, 0x1a
ja 0x4ae280
cmp esi, 0x1a
ja 0x4ae280
push 0x7f00
push 0
mov dword [0x4d97c0], 0x3f5
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x4af7c0
lea eax, [ecx - 0x22]
add edx, 0xfffffe7c
cmp eax, 0xe6
ja 0x4ae4eb
cmp edx, 0x28
ja 0x4ae4eb
mov byte [esp + 0x14], 0x25
mov al, 0x17
xor al, byte [esp + 0x14]
mov cl, 0x11
mov ch, 0x73
mov byte [esp + 0x15], al
mov al, byte [esp + 0x14]
mov dl, 0x47
xor cl, al
mov byte [esp + 0x1d], 0
xor ch, al
mov byte [esp + 0x16], cl
mov dh, 0x46
mov byte [esp + 0x1a], ch
mov bl, 0x43
mov dword [0x4d97c0], 0x3e9
mov ah, 0x75
mov byte [esp + 0x1d], 0
xor dl, al
mov dword [esp + 0x4c], 0
xor dh, al
mov byte [esp + 0x17], dl
mov bh, 0x69
mov byte [esp + 0x1b], dh
xor bl, al
mov dword [esp + 0x50], 0
xor ah, al
mov byte [esp + 0x18], bl
xor bh, al
mov byte [esp + 0x19], ah
xorps xmm0, xmm0
mov byte [esp + 0x1c], bh
lea ecx, [esp + 0x15]
movups xmmword [esp + 0x3c], xmm0
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4ae320
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x44]
call fcn.004b7120
mov bh, 0x27
mov byte [esp + 0x1c], 0
mov al, 0x5e
mov byte [esp + 0x14], bh
mov ah, 0x62
mov byte [esp + 0x1c], 0
mov ch, 0x40
xor al, bh
mov dh, ch
mov byte [esp + 0x15], al
xor ah, bh
mov cl, 0x4f
xor cl, bh
mov byte [esp + 0x19], ah
xor ch, bh
mov byte [esp + 0x16], cl
mov dl, 0x7f
mov byte [esp + 0x1a], ch
mov bl, 0x6a
lea eax, [esp + 0x15]
xor dl, bh
lea ecx, [esp + 0x3c]
xor dh, bh
mov byte [esp + 0x17], dl
xor bl, bh
mov byte [esp + 0x1b], dh
push eax
mov byte [esp + 0x1c], bl
call fcn.004b5e20
mov al, 0x38
mov byte [esp + 0x14], 0x55
mov ah, al
mov byte [esp + 0x1d], 0
xor al, byte [esp + 0x14]
mov dl, 0x37
mov dh, 0x36
mov byte [esp + 0x15], al
mov al, byte [esp + 0x14]
mov cl, 5
xor dl, al
mov byte [esp + 0x1d], 0
xor dh, al
mov byte [esp + 0x17], dl
mov ch, 0x65
mov byte [esp + 0x1b], dh
mov bl, 0x3d
lea edx, [esp + 0x15]
xor cl, al
xor ch, al
mov bh, 0x1f
mov byte [esp + 0x16], cl
xor bl, al
mov byte [esp + 0x1a], ch
xor ah, al
mov byte [esp + 0x18], bl
xor bh, al
mov byte [esp + 0x19], ah
mov byte [esp + 0x1c], bh
lea ecx, [edx + 1]
nop word [eax + eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x4ae3f0
mov edi, dword [esp + 0x50]
lea eax, [esp + 0x15]
mov esi, dword [esp + 0x3c]
sub edx, ecx
push edx
mov edx, dword [esp + 0x50]
lea ecx, [esp + 0x40]
cmp edi, 0x10
push eax
cmovae ecx, esi
call fcn.004b77b0
add esp, 8
test al, al
je 0x4ae4a0
mov byte [esp + 0x14], 0x18
mov al, 0x72
xor al, byte [esp + 0x14]
mov cl, 0x4a
mov bl, cl
mov byte [esp + 0x15], al
mov al, byte [esp + 0x14]
mov ch, 0x2d
xor cl, al
mov byte [esp + 0x1d], 0
xor ch, al
mov byte [esp + 0x16], cl
mov dl, 0x51
mov byte [esp + 0x1a], ch
mov dh, 0x7e
mov byte [esp + 0x1d], 0
mov ah, 0x6f
lea ecx, [esp + 0x15]
xor dl, al
xor dh, al
mov bh, 0x54
mov byte [esp + 0x17], dl
xor bl, al
mov byte [esp + 0x1b], dh
xor ah, al
mov byte [esp + 0x18], bl
xor bh, al
mov byte [esp + 0x19], ah
mov byte [esp + 0x1c], bh
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4ae480
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x44]
call fcn.004b66a0
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x3c]
cmp edi, 0x10
jb 0x4ae4d2
lea ecx, [edi + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x4ae4c8
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4ae4c8
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push esi
call fcn.004c8a1d
add esp, 8
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x4af7c0
lea eax, [ecx - 0x13b]
cmp eax, 0xe6
ja 0x4ae520
cmp edx, 0x28
ja 0x4ae520
push 0x7f00
push 0
mov dword [0x4d97c0], 0x3ea
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x4af7c0
lea eax, [ecx - 0x254]
cmp eax, 0xe6
ja 0x4af7a2
cmp edx, 0x28
ja 0x4af7a2
push 0x7f00
push 0
mov dword [0x4d97c0], 0x3eb
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x4af7c0
lea edi, [ecx - 0x28]
cmp edi, 0x140
ja 0x4ae87d
cmp edx, 0x1c1
jl 0x4ae87d
cmp edx, 0x1f5
jg 0x4ae87d
mov dh, 0x32
mov byte [esp + 0x1b], 0
mov cl, 3
mov byte [esp + 0x14], dh
mov dl, 0x5c
mov byte [esp + 0x1b], 0
xor cl, dh
mov dword [esp + 0x64], 0
mov al, 0x7c
mov byte [esp + 0x16], cl
mov bl, 0x53
mov dword [esp + 0x68], 0
mov ah, 0x68
mov ch, 0x67
xor al, dh
xor dl, dh
xor bl, dh
mov byte [esp + 0x17], dl
xor ah, dh
mov byte [esp + 0x15], al
xor ch, dh
mov byte [esp + 0x18], bl
mov byte [esp + 0x1a], ch
xorps xmm0, xmm0
lea ecx, [esp + 0x15]
mov byte [esp + 0x19], ah
movups xmmword [esp + 0x54], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4ae5e3
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x5c]
call fcn.004b7120
mov bh, 0x2b
mov byte [esp + 0x1c], 0
mov cl, 0x1c
mov byte [esp + 0x14], bh
mov ch, 0x72
mov byte [esp + 0x1c], 0
mov dl, 0x12
mov dword [esp + 0x4c], 0
xor cl, bh
mov dword [esp + 0x50], 0
xor ch, bh
mov byte [esp + 0x16], cl
mov al, 0x7a
mov byte [esp + 0x1a], ch
mov bl, 0x68
lea ecx, [esp + 0x15]
mov ah, 0x1f
mov dh, 0x6a
xor dl, bh
xor al, bh
xor bl, bh
mov byte [esp + 0x17], dl
xor ah, bh
mov byte [esp + 0x15], al
xor dh, bh
mov byte [esp + 0x18], bl
xorps xmm0, xmm0
mov byte [esp + 0x1b], dh
mov byte [esp + 0x19], ah
lea edx, [ecx + 1]
movups xmmword [esp + 0x3c], xmm0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4ae662
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x44]
call fcn.004b7120
mov al, 0x41
mov byte [esp + 0x14], 0x37
xor al, byte [esp + 0x14]
mov cl, 0x7f
mov byte [esp + 0x15], al
mov ch, 0x7e
mov al, byte [esp + 0x14]
mov dl, 0x78
xor cl, al
mov byte [esp + 0x1d], 0
xor ch, al
mov byte [esp + 0x16], cl
xor dl, al
mov byte [esp + 0x1a], ch
mov ah, 0x46
mov byte [esp + 0x17], dl
xor ah, al
mov byte [esp + 0x1d], 0
mov dh, 0x50
mov byte [esp + 0x19], ah
xor dh, al
mov dword [esp + 0x34], 0
mov bl, 0x4f
mov byte [esp + 0x1b], dh
xor bl, al
mov dword [esp + 0x38], 0
mov bh, 6
mov byte [esp + 0x18], bl
xor bh, al
mov ecx, 1
cmp dword [esp + 0x64], ecx
lea eax, [esp + 0x54]
xorps xmm0, xmm0
mov byte [esp + 0x1c], bh
cmovb ecx, dword [esp + 0x64]
cmp dword [esp + 0x68], 0x10
push ecx
cmovae eax, dword [esp + 0x58]
lea ecx, [esp + 0x28]
push eax
movups xmmword [esp + 0x2c], xmm0
call fcn.004b7120
lea edx, [esp + 0x15]
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x4ae715
mov edi, dword [esp + 0x38]
lea eax, [esp + 0x15]
mov esi, dword [esp + 0x24]
sub edx, ecx
push edx
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x28]
cmp edi, 0x10
push eax
cmovae ecx, esi
call fcn.004b77b0
add esp, 8
mov bl, al
cmp edi, 0x10
jb 0x4ae774
lea ecx, [edi + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x4ae76a
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4ae84a
push ecx
push esi
call fcn.004c8a1d
add esp, 8
test bl, bl
je 0x4ae7db
mov byte [esp + 0x14], 0x24
mov al, 0x74
xor al, byte [esp + 0x14]
mov ah, 0x4a
mov byte [esp + 0x15], al
mov cl, 0x62
mov al, byte [esp + 0x14]
mov dl, 0x10
xor ah, al
mov byte [esp + 0x1d], 0
mov ch, 0x63
mov byte [esp + 0x19], ah
mov dh, 0x1c
mov byte [esp + 0x1d], 0
xor cl, al
xor ch, al
mov bl, 0x77
mov byte [esp + 0x16], cl
mov bh, 0x61
mov byte [esp + 0x1a], ch
xor dl, al
lea ecx, [esp + 0x3c]
xor bl, al
mov byte [esp + 0x17], dl
xor dh, al
mov byte [esp + 0x18], bl
xor bh, al
mov byte [esp + 0x1b], dh
lea eax, [esp + 0x15]
mov byte [esp + 0x1c], bh
push eax
call fcn.004b5e20
mov ecx, dword [esp + 0x50]
cmp ecx, 0x10
jb 0x4ae80d
mov edx, dword [esp + 0x3c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4ae803
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4ae84a
push ecx
push edx
call fcn.004c8a1d
add esp, 8
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0xf
mov byte [esp + 0x3c], 0
cmp ecx, 0x10
jb 0x4ae85a
mov edx, dword [esp + 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4ae850
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4ae850
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.004c8a1d
add esp, 8
push 0x7f00
push 0
mov dword [0x4d97c0], 1
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x4af7c0
lea eax, [ecx - 0x168]
lea esi, [edx - 0x14]
cmp eax, 0x16
ja 0x4ae894
cmp esi, 0x14
jbe 0x4adf88
lea eax, [ecx - 0x14a]
cmp eax, 0x12
ja 0x4ae8b3
cmp esi, 0x14
ja 0x4ae8b3
mov dword [0x4d97c0], 3
jmp 0x4adf92
lea eax, [ecx - 0x145]
cmp eax, 0x13
ja 0x4aea51
cmp edx, 0x11d
jl 0x4aea51
cmp edx, 0x12c
jg 0x4aea51
mov bh, 0x69
mov byte [esp + 0x1c], 0
mov cl, 5
mov byte [esp + 0x14], bh
mov ch, 6
mov byte [esp + 0x1c], 0
mov dl, 0x1f
mov dword [esp + 0x34], 0
xor cl, bh
mov dword [esp + 0x38], 0
xor ch, bh
mov byte [esp + 0x16], cl
mov al, 1
mov byte [esp + 0x1a], ch
mov bl, 7
lea ecx, [esp + 0x15]
mov ah, 0x51
mov dh, 0x25
xor dl, bh
xor al, bh
xor bl, bh
mov byte [esp + 0x17], dl
xor ah, bh
mov byte [esp + 0x15], al
xor dh, bh
mov byte [esp + 0x18], bl
xorps xmm0, xmm0
mov byte [esp + 0x1b], dh
mov byte [esp + 0x19], ah
lea edx, [ecx + 1]
movups xmmword [esp + 0x24], xmm0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4ae941
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x2c]
call fcn.004b7120
mov byte [esp + 0x14], 2
mov al, 0x72
xor al, byte [esp + 0x14]
mov ah, 0x53
mov ch, ah
mov byte [esp + 0x15], al
mov al, byte [esp + 0x14]
mov cl, 0x6f
xor ah, al
mov byte [esp + 0x1d], 0
mov dl, 0x71
mov byte [esp + 0x19], ah
mov dh, 0x6c
mov byte [esp + 0x1d], 0
xor cl, al
xor ch, al
mov bl, 0x5a
mov byte [esp + 0x16], cl
mov bh, 0x60
mov byte [esp + 0x1a], ch
xor dl, al
lea ecx, [esp + 0x24]
xor bl, al
mov byte [esp + 0x17], dl
xor dh, al
mov byte [esp + 0x18], bl
xor bh, al
mov byte [esp + 0x1b], dh
lea eax, [esp + 0x15]
mov byte [esp + 0x1c], bh
push eax
call fcn.004b5e20
mov dh, 0x35
mov byte [esp + 0x1b], 0
mov al, 0x4f
mov byte [esp + 0x14], dh
mov cl, 0xc
mov byte [esp + 0x1b], 0
mov ah, 0x7d
mov dl, cl
xor al, dh
xor ah, dh
mov ch, 0x57
mov byte [esp + 0x15], al
xor cl, dh
mov byte [esp + 0x19], ah
xor ch, dh
mov byte [esp + 0x16], cl
mov bl, 0x76
mov byte [esp + 0x1a], ch
lea eax, [esp + 0x15]
xor dl, dh
xor bl, dh
mov byte [esp + 0x17], dl
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x1c], bl
call fcn.004b5e20
mov ecx, dword [esp + 0x38]
cmp ecx, 0x10
jb 0x4aea42
mov edx, dword [esp + 0x24]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4aea38
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4aea38
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.004c8a1d
add esp, 8
mov dword [0x4d97c0], 4
jmp 0x4adf92
lea eax, [ecx - 0x147]
cmp eax, 0x13
ja 0x4aea76
lea eax, [edx - 0x15d]
cmp eax, 0xf
ja 0x4aea76
mov dword [0x4d97c0], 5
jmp 0x4adf92
lea eax, [ecx - 0x97]
cmp eax, 0x14
ja 0x4aec31
cmp edx, 0x22b
jl 0x4aec31
cmp edx, 0x23f
jg 0x4aec31
mov byte [esp + 0x14], 0x46
mov al, 0x70
xor al, byte [esp + 0x14]
mov cl, 0x74
mov ch, 0x3e
mov byte [esp + 0x15], al
mov al, byte [esp + 0x14]
mov dl, 2
xor cl, al
mov byte [esp + 0x1d], 0
xor ch, al
mov byte [esp + 0x16], cl
mov dh, 0x3c
mov byte [esp + 0x1a], ch
mov bl, 0x3f
mov byte [esp + 0x1d], 0
mov ah, 0x29
mov dword [esp + 0x34], 0
xor dl, al
mov dword [esp + 0x38], 0
xor dh, al
mov byte [esp + 0x17], dl
mov bh, 0x23
mov byte [esp + 0x1b], dh
xor bl, al
lea ecx, [esp + 0x15]
xor ah, al
mov byte [esp + 0x18], bl
xor bh, al
mov byte [esp + 0x19], ah
xorps xmm0, xmm0
mov byte [esp + 0x1c], bh
movups xmmword [esp + 0x24], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4aeb11
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x2c]
call fcn.004b7120
mov al, 0x2a
mov byte [esp + 0x14], 0x49
mov byte [esp + 0x23], al
mov cl, 0x30
xor al, byte [esp + 0x14]
mov dl, 6
mov byte [esp + 0x15], al
mov ah, 0x24
mov al, byte [esp + 0x14]
mov ch, 1
xor cl, al
mov byte [esp + 0x1e], 0
xor ch, al
mov byte [esp + 0x16], cl
xor dl, al
mov byte [esp + 0x1a], ch
xor ah, al
mov byte [esp + 0x17], dl
mov dh, 0x1b
mov byte [esp + 0x19], ah
xor dh, al
mov byte [esp + 0x1e], 0
mov bl, 0x26
mov byte [esp + 0x1b], dh
xor bl, al
lea ecx, [esp + 0x24]
mov bh, 0x1e
mov byte [esp + 0x18], bl
xor bh, al
mov al, byte [esp + 0x23]
xor al, byte [esp + 0x14]
mov byte [esp + 0x1d], al
lea eax, [esp + 0x15]
push eax
mov byte [esp + 0x20], bh
call fcn.004b5e20
mov dh, 0x31
mov byte [esp + 0x1b], 0
mov al, 0x60
mov byte [esp + 0x14], dh
mov ah, 0x74
mov byte [esp + 0x1b], 0
xor al, dh
xor ah, dh
mov cl, 0x77
mov byte [esp + 0x15], al
mov ch, 0x55
mov byte [esp + 0x19], ah
xor cl, dh
lea eax, [esp + 0x15]
xor ch, dh
mov byte [esp + 0x16], cl
mov dl, 0x67
mov byte [esp + 0x1a], ch
mov bl, 0x70
lea ecx, [esp + 0x24]
xor dl, dh
xor bl, dh
push eax
mov byte [esp + 0x1b], dl
mov byte [esp + 0x1c], bl
call fcn.004b5e20
mov ecx, dword [esp + 0x38]
cmp ecx, 0x10
jb 0x4aec22
mov edx, dword [esp + 0x24]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4aec18
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4aec18
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.004c8a1d
add esp, 8
mov dword [0x4d97c0], 0x3e9
jmp 0x4adf92
lea eax, [ecx - 0xbf]
cmp eax, 0x14
ja 0x4aef63
cmp edx, 0x22b
jl 0x4aef63
cmp edx, 0x23f
jg 0x4aef63
mov bh, 0x3a
mov byte [esp + 0x1c], 0
mov cl, 0x71
mov byte [esp + 0x14], bh
mov ch, 0xd
mov byte [esp + 0x1c], 0
mov dl, 0x68
mov dword [esp + 0x64], 0
xor cl, bh
mov dword [esp + 0x68], 0
xor ch, bh
mov byte [esp + 0x16], cl
mov al, 0xe
mov byte [esp + 0x1a], ch
mov bl, 0xb
lea ecx, [esp + 0x15]
mov ah, 0x51
mov dh, 0x78
xor dl, bh
xor al, bh
xor bl, bh
mov byte [esp + 0x17], dl
xor ah, bh
mov byte [esp + 0x15], al
xor dh, bh
mov byte [esp + 0x18], bl
xorps xmm0, xmm0
mov byte [esp + 0x1b], dh
mov byte [esp + 0x19], ah
lea edx, [ecx + 1]
movups xmmword [esp + 0x54], xmm0
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4aecc0
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x5c]
call fcn.004b7120
mov bh, 0x77
mov byte [esp + 0x1c], 0
mov cl, 3
mov byte [esp + 0x14], bh
mov ch, 7
mov byte [esp + 0x1c], 0
mov dl, 0x13
mov dword [esp + 0x34], 0
xor cl, bh
mov dword [esp + 0x38], 0
xor ch, bh
mov byte [esp + 0x16], cl
mov al, 0x40
mov byte [esp + 0x1a], ch
mov bl, 0x10
lea ecx, [esp + 0x15]
mov ah, 0x1f
mov dh, 0x32
xor dl, bh
xor al, bh
xor bl, bh
mov byte [esp + 0x17], dl
xor ah, bh
mov byte [esp + 0x15], al
xor dh, bh
mov byte [esp + 0x18], bl
xorps xmm0, xmm0
mov byte [esp + 0x1b], dh
mov byte [esp + 0x19], ah
lea edx, [ecx + 1]
movups xmmword [esp + 0x24], xmm0
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4aed40
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x2c]
call fcn.004b7120
mov dh, 0x38
mov byte [esp + 0x1b], 0
mov dl, 0x69
mov byte [esp + 0x14], dh
mov cl, 0x52
mov byte [esp + 0x1b], 0
xor cl, dh
xor dl, dh
mov al, 0x6b
mov byte [esp + 0x17], dl
mov bl, 0x51
mov byte [esp + 0x16], cl
mov ah, 0x75
mov ch, 0x79
xor al, dh
xor bl, dh
xor ah, dh
mov byte [esp + 0x15], al
xor ch, dh
mov byte [esp + 0x18], bl
lea edx, [esp + 0x15]
mov byte [esp + 0x1a], ch
mov byte [esp + 0x19], ah
lea ecx, [edx + 1]
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x4aeda0
mov edi, dword [esp + 0x38]
lea eax, [esp + 0x15]
mov esi, dword [esp + 0x24]
sub edx, ecx
push edx
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x28]
cmp edi, 0x10
push eax
cmovae ecx, esi
call fcn.004b77b0
add esp, 8
test al, al
je 0x4aeeee
mov dh, 0x2f
mov byte [esp + 0x1b], 0
mov cl, 0x40
mov byte [esp + 0x14], dh
mov ah, cl
mov byte [esp + 0x1b], 0
mov dl, 0x5e
mov dword [esp + 0x34], 0
xor cl, dh
mov dword [esp + 0x38], 0
mov al, 0x78
mov byte [esp + 0x16], cl
mov bl, 0x7e
mov ch, 0x1e
xor al, dh
xor dl, dh
xor bl, dh
mov byte [esp + 0x17], dl
xor ah, dh
mov byte [esp + 0x15], al
xor ch, dh
mov byte [esp + 0x18], bl
mov byte [esp + 0x1a], ch
xorps xmm0, xmm0
lea ecx, [esp + 0x15]
mov byte [esp + 0x19], ah
movups xmmword [esp + 0x24], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4aee34
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x2c]
call fcn.004b7120
mov bh, 6
mov byte [esp + 0x1c], 0
mov cl, 0x52
mov byte [esp + 0x14], bh
mov ch, 0x7e
mov byte [esp + 0x1c], 0
mov dl, 0x55
xor cl, bh
xor ch, bh
mov byte [esp + 0x16], cl
mov al, 0x74
mov byte [esp + 0x1a], ch
mov bl, 0x68
lea ecx, [esp + 0x15]
mov ah, 0x6f
mov dh, 0x7c
xor dl, bh
xor al, bh
xor bl, bh
mov byte [esp + 0x17], dl
xor ah, bh
mov byte [esp + 0x15], al
xor dh, bh
mov byte [esp + 0x18], bl
mov byte [esp + 0x1b], dh
lea edx, [ecx + 1]
mov byte [esp + 0x19], ah
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4aeea0
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x2c]
call fcn.004b66a0
mov ecx, dword [esp + 0x38]
cmp ecx, 0x10
jb 0x4aeeee
mov edx, dword [esp + 0x24]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4aeee4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4af740
push ecx
push edx
call fcn.004c8a1d
add esp, 8
cmp edi, 0x10
jb 0x4aef1e
lea ecx, [edi + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x4aef14
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4af740
push ecx
push esi
call fcn.004c8a1d
add esp, 8
mov ecx, dword [esp + 0x68]
cmp ecx, 0x10
jb 0x4aef54
mov edx, dword [esp + 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4aef4a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4af740
push ecx
push edx
call fcn.004c8a1d
add esp, 8
mov dword [0x4d97c0], 0x3ea
jmp 0x4adf92
lea eax, [ecx - 0xe7]
cmp eax, 0x14
ja 0x4af0eb
cmp edx, 0x22b
jl 0x4af0eb
cmp edx, 0x23f
jg 0x4af0eb
mov dh, 0x1b
mov byte [esp + 0x1b], 0
mov cl, 0x61
mov byte [esp + 0x14], dh
mov dl, 0x4a
mov byte [esp + 0x1b], 0
xor cl, dh
mov dword [esp + 0x34], 0
mov al, 0x73
mov byte [esp + 0x16], cl
mov bl, 0x4f
mov dword [esp + 0x38], 0
mov ah, 0x43
mov ch, 0x58
xor al, dh
xor dl, dh
xor bl, dh
mov byte [esp + 0x17], dl
xor ah, dh
mov byte [esp + 0x15], al
xor ch, dh
mov byte [esp + 0x18], bl
mov byte [esp + 0x1a], ch
xorps xmm0, xmm0
lea ecx, [esp + 0x15]
mov byte [esp + 0x19], ah
movups xmmword [esp + 0x24], xmm0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4aeff0
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x2c]
call fcn.004b7120
mov dh, 0x4f
mov byte [esp + 0x1b], 0
mov al, 3
mov byte [esp + 0x14], dh
mov ah, 0x3b
mov byte [esp + 0x1b], 0
xor al, dh
xor ah, dh
mov cl, 0x26
mov byte [esp + 0x15], al
mov ch, 0x7e
mov byte [esp + 0x19], ah
xor cl, dh
lea eax, [esp + 0x15]
xor ch, dh
mov byte [esp + 0x16], cl
mov dl, 0x22
mov byte [esp + 0x1a], ch
mov bl, 0x17
lea ecx, [esp + 0x24]
xor dl, dh
xor bl, dh
push eax
mov byte [esp + 0x1b], dl
mov byte [esp + 0x1c], bl
call fcn.004b5e20
mov dh, 0x30
mov byte [esp + 0x1b], 0
mov al, 0x73
mov byte [esp + 0x14], dh
mov ah, 0x6a
mov byte [esp + 0x1b], 0
xor al, dh
xor ah, dh
mov cl, 0x5d
mov byte [esp + 0x15], al
mov ch, 0x5b
mov byte [esp + 0x19], ah
xor cl, dh
lea eax, [esp + 0x15]
xor ch, dh
mov byte [esp + 0x16], cl
mov dl, 0x5e
mov byte [esp + 0x1a], ch
mov bl, 0x54
lea ecx, [esp + 0x24]
xor dl, dh
xor bl, dh
push eax
mov byte [esp + 0x1b], dl
mov byte [esp + 0x1c], bl
call fcn.004b5e20
mov ecx, dword [esp + 0x38]
cmp ecx, 0x10
jb 0x4af0dc
mov edx, dword [esp + 0x24]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4af0d2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4af0d2
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.004c8a1d
add esp, 8
mov dword [0x4d97c0], 0x3eb
jmp 0x4adf92
cmp ecx, 0x28
jl 0x4af4c5
cmp ecx, 0x168
jg 0x4af4c5
cmp edx, 0x109
jl 0x4af497
cmp edx, 0x13f
jg 0x4af497
mov byte [esp + 0x14], 0x66
mov al, 2
xor al, byte [esp + 0x14]
mov cl, 0x31
mov ch, 0x20
mov byte [esp + 0x15], al
mov al, byte [esp + 0x14]
mov dl, 0x2c
xor cl, al
mov byte [esp + 0x1d], 0
xor ch, al
mov byte [esp + 0x16], cl
mov dh, 0x37
mov byte [esp + 0x1a], ch
mov bl, 0x1c
mov byte [esp + 0x1d], 0
mov ah, 0x10
mov dword [esp + 0x64], 0
xor dl, al
mov dword [esp + 0x68], 0
xor dh, al
mov byte [esp + 0x17], dl
mov bh, 0x27
mov byte [esp + 0x1b], dh
xor bl, al
lea ecx, [esp + 0x15]
xor ah, al
mov byte [esp + 0x18], bl
xor bh, al
mov byte [esp + 0x19], ah
xorps xmm0, xmm0
mov byte [esp + 0x1c], bh
movups xmmword [esp + 0x54], xmm0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4af190
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x5c]
call fcn.004b7120
mov byte [esp + 0x14], 0x1a
mov cl, 0x69
xor cl, byte [esp + 0x14]
mov al, 0x2c
xor al, byte [esp + 0x14]
mov ch, 0x53
mov byte [esp + 0x15], al
mov dl, 0x5f
mov byte [esp + 0x16], cl
mov dh, 0x6e
mov cl, byte [esp + 0x14]
mov bl, 0x68
mov byte [esp + 0x23], 0x70
xor dl, cl
mov al, byte [esp + 0x23]
xor ch, cl
xor al, cl
mov byte [esp + 0x22], 0x74
xor dh, cl
mov byte [esp + 0x1d], al
mov al, byte [esp + 0x22]
mov ah, 0x7f
mov bh, 0x4d
mov byte [esp + 0x1a], ch
xor bl, cl
mov byte [esp + 0x1f], 0
xor ah, cl
mov byte [esp + 0x17], dl
xor bh, cl
mov byte [esp + 0x1b], dh
xor al, cl
mov byte [esp + 0x18], bl
xorps xmm0, xmm0
mov byte [esp + 0x19], ah
lea ecx, [esp + 0x15]
mov byte [esp + 0x1c], bh
mov byte [esp + 0x1e], al
lea edx, [ecx + 1]
mov byte [esp + 0x1f], 0
movups xmmword [esp + 0x24], xmm0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4af240
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x2c]
call fcn.004b7120
mov byte [esp + 0x14], 0x47
mov al, 0x72
xor al, byte [esp + 0x14]
mov ah, 0x31
mov byte [esp + 0x15], al
mov cl, 0x22
mov al, byte [esp + 0x14]
mov dl, 0x21
mov ch, 0xc
mov byte [esp + 0x22], ah
mov dh, 0x33
mov byte [esp + 0x1e], 0
xor cl, al
mov byte [esp + 0x1e], 0
xor dl, al
mov byte [esp + 0x16], cl
xor ch, al
mov byte [esp + 0x17], dl
xor dh, al
mov byte [esp + 0x1a], ch
mov bl, 0x12
mov byte [esp + 0x1b], dh
mov bh, 0x77
lea edx, [esp + 0x15]
xor bl, al
lea ecx, [edx + 1]
xor ah, al
mov byte [esp + 0x18], bl
xor bh, al
mov byte [esp + 0x19], ah
mov al, byte [esp + 0x22]
xor al, byte [esp + 0x14]
mov byte [esp + 0x1c], bh
mov byte [esp + 0x1d], al
mov al, byte [edx]
inc edx
test al, al
jne 0x4af2c4
mov edi, dword [esp + 0x38]
lea eax, [esp + 0x15]
mov esi, dword [esp + 0x24]
sub edx, ecx
push edx
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x28]
cmp edi, 0x10
push eax
cmovae ecx, esi
call fcn.004b77b0
add esp, 8
test al, al
je 0x4af40e
mov bh, 0x53
mov byte [esp + 0x1c], 0
mov cl, 0x12
mov byte [esp + 0x14], bh
mov ch, 0x63
mov byte [esp + 0x1c], 0
mov dl, 0x61
mov dword [esp + 0x34], 0
xor cl, bh
mov dword [esp + 0x38], 0
xor ch, bh
mov byte [esp + 0x16], cl
mov al, 0x3e
mov byte [esp + 0x1a], ch
mov bl, 0x36
lea ecx, [esp + 0x15]
mov ah, 0x23
mov dh, 0x1a
xor dl, bh
xor al, bh
xor bl, bh
mov byte [esp + 0x17], dl
xor ah, bh
mov byte [esp + 0x15], al
xor dh, bh
mov byte [esp + 0x18], bl
xorps xmm0, xmm0
mov byte [esp + 0x1b], dh
mov byte [esp + 0x19], ah
lea edx, [ecx + 1]
movups xmmword [esp + 0x24], xmm0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4af360
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x2c]
call fcn.004b7120
mov dh, 0xf
mov byte [esp + 0x1b], 0
mov cl, 0x76
mov byte [esp + 0x14], dh
mov dl, 0x78
mov byte [esp + 0x1b], 0
xor cl, dh
mov al, 0x79
mov bl, 0x64
mov byte [esp + 0x16], cl
mov ah, 0x60
mov ch, 0x41
xor al, dh
xor dl, dh
xor bl, dh
mov byte [esp + 0x17], dl
xor ah, dh
mov byte [esp + 0x15], al
xor ch, dh
mov byte [esp + 0x18], bl
mov byte [esp + 0x1a], ch
lea ecx, [esp + 0x15]
mov byte [esp + 0x19], ah
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4af3c0
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x2c]
call fcn.004b66a0
mov ecx, dword [esp + 0x38]
cmp ecx, 0x10
jb 0x4af40e
mov edx, dword [esp + 0x24]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4af404
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4af740
push ecx
push edx
call fcn.004c8a1d
add esp, 8
cmp edi, 0x10
jb 0x4af43e
lea ecx, [edi + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x4af434
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4af740
push ecx
push esi
call fcn.004c8a1d
add esp, 8
mov ecx, dword [esp + 0x68]
cmp ecx, 0x10
jb 0x4af474
mov edx, dword [esp + 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4af46a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4af740
push ecx
push edx
call fcn.004c8a1d
add esp, 8
push 0x7f01
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov dword [0x4d97c0], 0x7d1
jmp 0x4af7c0
lea eax, [edx - 0x149]
cmp eax, 0x36
ja 0x4af4c5
push 0x7f01
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov dword [0x4d97c0], 0x7d2
jmp 0x4af7c0
lea eax, [ecx - 0x46]
cmp eax, 0x104
ja 0x4af75f
cmp edx, 0x1f7
jl 0x4af75f
cmp edx, 0x20f
jg 0x4af75f
mov bh, 0x24
mov byte [esp + 0x1c], 0
mov cl, 0x74
mov byte [esp + 0x14], bh
mov ch, 0x48
mov byte [esp + 0x1c], 0
mov dl, 0x16
mov dword [esp + 0x4c], 0
xor cl, bh
mov dword [esp + 0x50], 0
xor ch, bh
mov byte [esp + 0x16], cl
mov al, 0x4e
mov byte [esp + 0x1a], ch
mov bl, 0x72
lea ecx, [esp + 0x15]
mov ah, 0x77
mov dh, 0x43
xor dl, bh
xor al, bh
xor bl, bh
mov byte [esp + 0x17], dl
xor ah, bh
mov byte [esp + 0x15], al
xor dh, bh
mov byte [esp + 0x18], bl
xorps xmm0, xmm0
mov byte [esp + 0x1b], dh
mov byte [esp + 0x19], ah
lea edx, [ecx + 1]
movups xmmword [esp + 0x3c], xmm0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4af552
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x44]
call fcn.004b7120
mov byte [esp + 0x14], 0x20
mov al, 0x49
xor al, byte [esp + 0x14]
mov cl, 0x57
mov byte [esp + 0x15], al
mov ch, 0x54
mov al, byte [esp + 0x14]
mov dl, 0x52
xor cl, al
mov byte [esp + 0x22], 0x4a
xor ch, al
mov byte [esp + 0x16], cl
xor dl, al
mov byte [esp + 0x1a], ch
mov ah, 0x76
mov byte [esp + 0x1e], 0
xor ah, al
mov byte [esp + 0x17], dl
mov dh, 0x78
mov byte [esp + 0x19], ah
xor dh, al
mov byte [esp + 0x1e], 0
mov bl, 0x55
mov byte [esp + 0x1b], dh
xor bl, al
mov dword [esp + 0x34], 0
mov bh, 0x5a
mov byte [esp + 0x18], bl
xor bh, al
mov dword [esp + 0x38], 0
mov al, byte [esp + 0x22]
mov ecx, 1
xor al, byte [esp + 0x14]
xorps xmm0, xmm0
cmp dword [esp + 0x4c], ecx
mov byte [esp + 0x1d], al
lea eax, [esp + 0x3c]
cmovb ecx, dword [esp + 0x4c]
cmp dword [esp + 0x50], 0x10
push ecx
cmovae eax, dword [esp + 0x40]
lea ecx, [esp + 0x28]
push eax
mov byte [esp + 0x24], bh
movups xmmword [esp + 0x2c], xmm0
call fcn.004b7120
lea edx, [esp + 0x15]
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x4af616
mov edi, dword [esp + 0x38]
lea eax, [esp + 0x15]
mov esi, dword [esp + 0x24]
sub edx, ecx
push edx
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x28]
cmp edi, 0x10
push eax
cmovae ecx, esi
call fcn.004b77b0
add esp, 8
mov bl, al
cmp edi, 0x10
jb 0x4af675
lea ecx, [edi + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x4af66b
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4af740
push ecx
push esi
call fcn.004c8a1d
add esp, 8
test bl, bl
je 0x4af718
mov byte [esp + 0x14], 0x2c
mov cl, 0x74
xor cl, byte [esp + 0x14]
mov al, 0x1d
xor al, byte [esp + 0x14]
mov ch, 0x4f
mov byte [esp + 0x15], al
mov dl, 0x75
mov byte [esp + 0x16], cl
mov dh, 0x4d
mov cl, byte [esp + 0x14]
mov bl, 0x6a
mov byte [esp + 0x22], 0x78
xor dl, cl
mov al, byte [esp + 0x22]
xor ch, cl
xor al, cl
mov byte [esp + 0x23], 0x58
xor dh, cl
mov byte [esp + 0x1d], al
mov al, byte [esp + 0x23]
mov ah, 0x55
mov bh, 0x54
mov byte [esp + 0x1a], ch
xor bl, cl
mov byte [esp + 0x1f], 0
xor ah, cl
mov byte [esp + 0x17], dl
xor bh, cl
mov byte [esp + 0x1b], dh
xor al, cl
mov byte [esp + 0x18], bl
lea ecx, [esp + 0x15]
mov byte [esp + 0x19], ah
mov byte [esp + 0x1c], bh
lea edx, [ecx + 1]
mov byte [esp + 0x1e], al
mov byte [esp + 0x1f], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4af700
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x44]
call fcn.004b66a0
mov ecx, dword [esp + 0x50]
cmp ecx, 0x10
jb 0x4af750
mov edx, dword [esp + 0x3c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4af746
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4af746
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.004c8a1d
add esp, 8
mov dword [0x4d97c0], 0xfa1
jmp 0x4adf92
add edx, 0xfffffe70
cmp edi, 0xa0
ja 0x4af781
cmp edx, 0x1b
ja 0x4af781
mov dword [0x4d97c0], 0xfa2
jmp 0x4adf92
lea eax, [ecx - 0xe6]
cmp eax, 0x82
ja 0x4af7a2
cmp edx, 0x1b
ja 0x4af7a2
mov dword [0x4d97c0], 0xfa3
jmp 0x4adf92
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov dword [0x4d97c0], 0
cmp ebp, dword [0x4d97c0]
je 0x4afad2
mov dh, 0x49
mov byte [esp + 0x1b], 0
mov al, 0x70
mov byte [esp + 0x14], dh
mov dl, al
mov byte [esp + 0x1b], 0
mov cl, 0x7c
mov dword [esp + 0x4c], 0
xor cl, dh
mov dword [esp + 0x50], 0
mov bl, 0x1c
mov byte [esp + 0x16], cl
mov ah, 5
mov ch, 0x31
xor al, dh
xor dl, dh
xor bl, dh
mov byte [esp + 0x17], dl
xor ah, dh
mov byte [esp + 0x15], al
xor ch, dh
mov byte [esp + 0x18], bl
mov byte [esp + 0x1a], ch
xorps xmm0, xmm0
lea ecx, [esp + 0x15]
mov byte [esp + 0x19], ah
movups xmmword [esp + 0x3c], xmm0
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4af830
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x44]
call fcn.004b7120
mov bh, 8
mov byte [esp + 0x1c], 0
mov al, 0x5f
mov byte [esp + 0x14], bh
mov ah, 0x64
mov byte [esp + 0x1c], 0
xor al, bh
xor ah, bh
mov cl, 0x47
mov byte [esp + 0x15], al
mov ch, 0x65
mov byte [esp + 0x19], ah
xor cl, bh
lea eax, [esp + 0x15]
xor ch, bh
mov byte [esp + 0x16], cl
mov dl, 0x7a
mov byte [esp + 0x1a], ch
mov dh, 0x49
lea ecx, [esp + 0x3c]
mov bl, 0x3a
xor dl, bh
xor dh, bh
mov byte [esp + 0x17], dl
xor bl, bh
mov byte [esp + 0x1b], dh
push eax
mov byte [esp + 0x1c], bl
call fcn.004b5e20
mov byte [esp + 0x14], 0x2d
mov al, 0x1e
xor al, byte [esp + 0x14]
mov dl, 0x6c
mov dh, 0x62
mov byte [esp + 0x15], al
mov al, byte [esp + 0x14]
mov cl, 0x1a
xor dl, al
mov byte [esp + 0x1d], 0
xor dh, al
mov byte [esp + 0x17], dl
mov ch, 0x42
mov byte [esp + 0x1b], dh
mov bl, 0x5d
mov byte [esp + 0x1d], 0
mov ah, 0x6a
lea edx, [esp + 0x15]
xor cl, al
xor ch, al
mov bh, 0x69
mov byte [esp + 0x16], cl
xor bl, al
mov byte [esp + 0x1a], ch
xor ah, al
mov byte [esp + 0x18], bl
xor bh, al
mov byte [esp + 0x19], ah
mov byte [esp + 0x1c], bh
lea ecx, [edx + 1]
nop word [eax + eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x4af900
mov edi, dword [esp + 0x50]
lea eax, [esp + 0x15]
mov esi, dword [esp + 0x3c]
sub edx, ecx
push edx
mov edx, dword [esp + 0x50]
lea ecx, [esp + 0x40]
cmp edi, 0x10
push eax
cmovae ecx, esi
call fcn.004b77b0
add esp, 8
test al, al
je 0x4af9ad
mov byte [esp + 0x14], 0x72
mov al, 0x14
xor al, byte [esp + 0x14]
mov cl, 0x16
mov byte [esp + 0x15], al
mov dl, 7
mov al, byte [esp + 0x14]
mov ah, 0x17
xor cl, al
mov byte [esp + 0x22], 0
xor dl, al
mov byte [esp + 0x16], cl
xor ah, al
mov byte [esp + 0x1e], 0
mov ch, 0x40
mov byte [esp + 0x19], ah
xor ch, al
mov byte [esp + 0x17], dl
mov dh, 0x3e
mov byte [esp + 0x1a], ch
xor dh, al
mov byte [esp + 0x1e], 0
mov bl, 0x27
mov byte [esp + 0x1b], dh
xor bl, al
lea ecx, [esp + 0x3c]
mov bh, 0x37
mov byte [esp + 0x18], bl
xor bh, al
mov al, byte [esp + 0x22]
xor al, byte [esp + 0x14]
mov byte [esp + 0x1d], al
lea eax, [esp + 0x15]
push eax
mov byte [esp + 0x20], bh
call fcn.004b5e20
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x3c]
cmp edi, 0x10
jb 0x4af9df
lea ecx, [edi + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x4af9d5
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4af9d5
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push esi
call fcn.004c8a1d
add esp, 8
mov edi, dword [0x4d9870]
xor ebx, ebx
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0xf
mov byte [esp + 0x3c], 0
mov eax, dword [edi + 0x3c]
mov ebp, dword [eax + edi + 0x78]
mov esi, dword [ebp + edi + 0x20]
add esi, edi
nop dword [eax]
mov ecx, dword [esi]
mov edx, 0xf3678667
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4afa3d
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4afa20
cmp edx, 0x6a27de38
je 0x4afa43
inc ebx
add esi, 4
jmp 0x4afa10
mov eax, dword [ebp + edi + 0x24]
push 0
push 0
push dword [0x4d9864]
lea eax, [eax + ebx*2]
movzx ecx, word [eax + edi]
mov eax, dword [ebp + edi + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edi]
add eax, edi
call eax
mov ebx, dword [0x4d9870]
xor edi, edi
mov eax, dword [ebx + 0x3c]
mov ebp, dword [eax + ebx + 0x78]
mov esi, dword [ebp + ebx + 0x20]
add esi, ebx
nop dword [eax + eax]
mov ecx, dword [esi]
mov edx, 0x26e70533
add ecx, ebx
mov al, byte [ecx]
inc ecx
test al, al
je 0x4afaad
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4afa90
cmp edx, 0xe6d4b35e
je 0x4afab3
inc edi
add esi, 4
jmp 0x4afa80
mov eax, dword [ebp + ebx + 0x24]
push dword [0x4d9864]
lea eax, [eax + edi*2]
movzx ecx, word [eax + ebx]
mov eax, dword [ebp + ebx + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + ebx]
add eax, ebx
call eax
mov ecx, dword [esp + 0x6c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004c8789
add esp, 0x64
ret