Function at 0x4ad7e0
Capabilities:
Authenticate hmac
Check http status code
Encode data using xor
Hash data using fnv
Parse pe header
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xac
mov eax, dword [0x4d700c]
xor eax, esp
mov dword [esp + 0xa4], eax
cmp byte [0x4d77c7], 0
push ebx
push ebp
mov ebp, dword [0x4d77c0]
push esi
push edi
je 0x4add3b
lea eax, [ecx - 0x334]
cmp eax, 0x16
ja 0x4adb54
cmp edx, 0x14
jl 0x4adb54
cmp edx, 0x28
jg 0x4adb54
mov byte [esp + 0x14], 0xd
mov al, 0x7d
xor al, byte [esp + 0x14]
mov cl, 0x58
mov ch, 0x74
mov byte [esp + 0x15], al
mov al, byte [esp + 0x14]
mov dl, 0x63
xor cl, al
mov byte [esp + 0x1d], 0
xor ch, al
mov byte [esp + 0x16], cl
mov dh, 0x6a
mov byte [esp + 0x1a], ch
mov bl, 0x7a
mov byte [esp + 0x1d], 0
mov ah, 0x5a
mov dword [esp + 0x4c], 0
xor dl, al
mov dword [esp + 0x50], 0
xor dh, al
mov byte [esp + 0x17], dl
mov bh, 0x47
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 + 0x3c], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4ad8a0
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x44]
call fcn.004b5700
mov bh, 0x47
mov byte [esp + 0x1c], 0
mov dl, 0x14
mov byte [esp + 0x14], bh
mov cl, 0x37
mov byte [esp + 0x1c], 0
mov bl, dl
mov dword [esp + 0x64], 0
mov ch, 0x21
mov dword [esp + 0x68], 0
xor cl, bh
xor ch, bh
mov al, 0xd
mov byte [esp + 0x16], cl
mov ah, 0x28
mov byte [esp + 0x1a], ch
mov dh, 0x24
lea ecx, [esp + 0x15]
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 0x4ad920
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x5c]
call fcn.004b5700
mov byte [esp + 0x14], 0x76
mov al, 0x25
xor al, byte [esp + 0x14]
mov ah, 0x32
mov byte [esp + 0x15], al
mov cl, 0x34
mov al, byte [esp + 0x14]
mov dl, 3
xor ah, al
mov byte [esp + 0x1d], 0
mov ch, 0x1b
mov byte [esp + 0x19], ah
mov dh, 0x33
mov byte [esp + 0x1d], 0
xor cl, al
xor ch, al
mov bl, 0x23
mov byte [esp + 0x16], cl
mov bh, 0x45
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.004b44f0
mov byte [esp + 0x14], 0x48
mov al, 0x25
xor al, byte [esp + 0x14]
mov ah, 0x26
mov byte [esp + 0x15], al
mov cl, 0x71
mov al, byte [esp + 0x14]
mov dl, 0x3e
mov ch, 0x3c
mov byte [esp + 0x22], ah
mov dh, 0x2c
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, 0xd
mov byte [esp + 0x1b], dh
mov bh, 0x19
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 0x4ada07
mov edi, dword [esp + 0x68]
lea eax, [esp + 0x15]
mov esi, dword [esp + 0x54]
sub edx, ecx
push edx
mov edx, dword [esp + 0x68]
lea ecx, [esp + 0x58]
cmp edi, 0x10
push eax
cmovae ecx, esi
call fcn.004b5da0
add esp, 8
test al, al
je 0x4adaa3
mov al, 0x62
mov byte [esp + 0x14], 0xb
mov ah, al
mov byte [esp + 0x1d], 0
xor al, byte [esp + 0x14]
mov cl, 0x39
mov byte [esp + 0x15], al
mov dl, 0x7e
mov al, byte [esp + 0x14]
mov ch, 0x5c
xor ah, al
mov byte [esp + 0x1d], 0
mov dh, 0x7d
mov byte [esp + 0x19], ah
xor cl, al
xor ch, al
mov bl, 0x3b
mov byte [esp + 0x16], cl
mov bh, 0x5d
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.004b44f0
mov edi, dword [esp + 0x68]
mov esi, dword [esp + 0x54]
cmp edi, 0x10
jb 0x4adacf
lea ecx, [edi + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x4adac5
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4adb0c
push ecx
push esi
call fcn.004c718d
add esp, 8
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0xf
mov byte [esp + 0x54], 0
cmp ecx, 0x10
jb 0x4adb1c
mov edx, dword [esp + 0x3c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4adb12
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4adb12
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.004c718d
add esp, 8
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0xf
mov byte [esp + 0x3c], 0
mov dword [0x4d77c0], 2
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x4aea20
lea eax, [ecx - 0x316]
cmp eax, 0x12
ja 0x4adb8a
lea eax, [edx - 0x14]
cmp eax, 0x14
ja 0x4adb8a
push 0x7f00
push 0
mov dword [0x4d77c0], 3
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x4aea20
lea eax, [ecx - 0x8f]
lea esi, [edx - 0x1a]
cmp eax, 0x114
ja 0x4adbc2
cmp esi, 0x28
ja 0x4adbc2
push 0x7f00
push 0
mov dword [0x4d77c0], 4
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x4aea20
lea eax, [ecx - 0x1b2]
cmp eax, 0x28
ja 0x4adbf5
cmp esi, 0x28
ja 0x4adbf5
push 0x7f00
push 0
mov dword [0x4d77c0], 5
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x4aea20
lea eax, [ecx - 0x204]
lea esi, [edx - 0x22]
cmp eax, 0x1a
ja 0x4adc2b
cmp esi, 0x1a
ja 0x4adc2b
push 0x7f00
push 0
mov dword [0x4d77c0], 0x3f3
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x4aea20
lea eax, [ecx - 0x22f]
cmp eax, 0x1a
ja 0x4adc5e
cmp esi, 0x1a
ja 0x4adc5e
push 0x7f00
push 0
mov dword [0x4d77c0], 0x3f4
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x4aea20
lea eax, [ecx - 0x25a]
cmp eax, 0x1a
ja 0x4adc91
cmp esi, 0x1a
ja 0x4adc91
push 0x7f00
push 0
mov dword [0x4d77c0], 0x3f5
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x4aea20
lea eax, [ecx - 0x22]
add edx, 0xfffffe7c
cmp eax, 0xe6
ja 0x4adcc9
cmp edx, 0x28
ja 0x4adcc9
push 0x7f00
push 0
mov dword [0x4d77c0], 0x3e9
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x4aea20
lea eax, [ecx - 0x13b]
cmp eax, 0xe6
ja 0x4adcfe
cmp edx, 0x28
ja 0x4adcfe
push 0x7f00
push 0
mov dword [0x4d77c0], 0x3ea
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x4aea20
lea eax, [ecx - 0x254]
cmp eax, 0xe6
ja 0x4aea02
cmp edx, 0x28
ja 0x4aea02
push 0x7f00
push 0
mov dword [0x4d77c0], 0x3eb
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x4aea20
lea edi, [ecx - 0x28]
cmp edi, 0x140
ja 0x4ae0bb
cmp edx, 0x1c1
jl 0x4ae0bb
cmp edx, 0x1f5
jg 0x4ae0bb
mov byte [esp + 0x14], 0x55
mov al, 0x64
xor al, byte [esp + 0x14]
mov cl, 2
mov ch, 0x25
mov byte [esp + 0x15], al
mov al, byte [esp + 0x14]
mov dl, 0x33
xor cl, al
mov byte [esp + 0x1d], 0
xor ch, al
mov byte [esp + 0x16], cl
mov dh, 0x6c
mov byte [esp + 0x1a], ch
mov bl, 0x61
mov byte [esp + 0x1d], 0
mov ah, 0x3b
mov dword [esp + 0x94], 0
xor dl, al
mov dword [esp + 0x98], 0
xor dh, al
mov byte [esp + 0x17], dl
mov bh, 0x20
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 + 0x84], xmm0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4adde0
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x8c]
call fcn.004b5700
mov byte [esp + 0x14], 0x17
mov al, 0x5b
xor al, byte [esp + 0x14]
mov dl, 0x4d
mov cl, 0x71
mov byte [esp + 0x15], al
mov al, byte [esp + 0x14]
mov ch, 0x23
mov bl, dl
mov byte [esp + 0x1d], 0
xor cl, al
mov byte [esp + 0x1d], 0
xor ch, al
mov byte [esp + 0x16], cl
mov dh, 0x5e
mov byte [esp + 0x1a], ch
mov ah, 0x55
mov dword [esp + 0x7c], 0
xor dl, al
mov dword [esp + 0x80], 0
xor dh, al
mov byte [esp + 0x17], dl
mov bh, 0x50
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 + 0x6c], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4ade72
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x74]
call fcn.004b5700
mov byte [esp + 0x14], 0x23
mov al, 0x6c
xor al, byte [esp + 0x14]
mov cl, 0x56
mov byte [esp + 0x15], al
mov dl, 0x4a
mov al, byte [esp + 0x14]
mov ah, 0x44
xor cl, al
mov byte [esp + 0x22], 0x62
xor dl, al
mov byte [esp + 0x16], cl
xor ah, al
mov byte [esp + 0x1e], 0
mov ch, 0x74
mov byte [esp + 0x19], ah
xor ch, al
mov byte [esp + 0x17], dl
mov dh, 0x79
mov byte [esp + 0x1a], ch
xor dh, al
mov byte [esp + 0x1e], 0
mov bl, 0x11
mov byte [esp + 0x1b], dh
xor bl, al
lea ecx, [esp + 0x6c]
mov bh, 0x60
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.004b44f0
mov bh, 0x50
mov byte [esp + 0x1c], 0
mov cl, 2
mov byte [esp + 0x14], bh
mov dl, 0x1f
mov byte [esp + 0x1c], 0
mov ch, 0x1e
mov al, 0x16
mov bl, 0x68
mov ah, 0x63
mov dh, 0x27
xor cl, bh
xor dl, bh
mov byte [esp + 0x16], cl
xor ch, bh
mov byte [esp + 0x17], dl
xor al, bh
mov byte [esp + 0x1a], ch
xor bl, bh
mov byte [esp + 0x15], al
xor ah, bh
mov byte [esp + 0x18], bl
xor dh, bh
mov byte [esp + 0x19], ah
mov byte [esp + 0x1b], dh
lea edx, [esp + 0x15]
lea ecx, [edx + 1]
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x4adf50
mov edi, dword [esp + 0x80]
lea eax, [esp + 0x15]
mov esi, dword [esp + 0x6c]
sub edx, ecx
push edx
mov edx, dword [esp + 0x80]
lea ecx, [esp + 0x70]
cmp edi, 0x10
push eax
cmovae ecx, esi
call fcn.004b5da0
add esp, 8
test al, al
je 0x4adff8
mov al, 0x77
mov byte [esp + 0x14], 0x21
mov ah, al
mov byte [esp + 0x1d], 0
xor al, byte [esp + 0x14]
mov cl, 0x53
mov byte [esp + 0x15], al
mov dl, 0x17
mov al, byte [esp + 0x14]
mov ch, 0x4d
xor ah, al
mov byte [esp + 0x1d], 0
mov dh, 0x49
mov byte [esp + 0x19], ah
xor cl, al
xor ch, al
mov bl, 0x52
mov byte [esp + 0x16], cl
mov bh, 0x6b
mov byte [esp + 0x1a], ch
xor dl, al
lea ecx, [esp + 0x84]
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.004b44f0
mov edi, dword [esp + 0x80]
mov esi, dword [esp + 0x6c]
cmp edi, 0x10
jb 0x4ae024
lea ecx, [edi + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x4ae01a
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4ae06a
push ecx
push esi
call fcn.004c718d
add esp, 8
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0xf
mov byte [esp + 0x6c], 0
cmp ecx, 0x10
jb 0x4ae07a
mov edx, dword [esp + 0x84]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4ae070
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4ae070
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.004c718d
add esp, 8
push 0x7f00
push 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0xf
mov byte [esp + 0x8c], 0
mov dword [0x4d77c0], 1
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
jmp 0x4aea20
lea eax, [ecx - 0x168]
lea esi, [edx - 0x14]
cmp eax, 0x16
ja 0x4ae0d2
cmp esi, 0x14
jbe 0x4adb31
lea eax, [ecx - 0x14a]
cmp eax, 0x12
ja 0x4ae0f1
cmp esi, 0x14
ja 0x4ae0f1
mov dword [0x4d77c0], 3
jmp 0x4adb3b
lea eax, [ecx - 0x145]
cmp eax, 0x13
ja 0x4ae116
lea eax, [edx - 0x11d]
cmp eax, 0xf
ja 0x4ae116
mov dword [0x4d77c0], 4
jmp 0x4adb3b
lea eax, [ecx - 0x147]
cmp eax, 0x13
ja 0x4ae2af
cmp edx, 0x15d
jl 0x4ae2af
cmp edx, 0x16c
jg 0x4ae2af
mov byte [esp + 0x14], 0x35
mov al, 0x70
xor al, byte [esp + 0x14]
mov cl, 0x52
mov byte [esp + 0x15], al
mov dl, 0x5d
mov al, byte [esp + 0x14]
mov ch, 0x74
mov dh, 0x64
mov byte [esp + 0x22], 0x7f
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, 0x5e
mov byte [esp + 0x1b], dh
mov ah, 0x5c
mov byte [esp + 0x1e], 0
mov bh, 0x54
mov dword [esp + 0xac], 0
xor bl, al
mov dword [esp + 0xb0], 0
xor ah, al
mov byte [esp + 0x18], bl
xor bh, al
mov byte [esp + 0x19], ah
mov al, byte [esp + 0x22]
lea ecx, [esp + 0x15]
xor al, byte [esp + 0x14]
lea edx, [ecx + 1]
xorps xmm0, xmm0
mov byte [esp + 0x1c], bh
mov byte [esp + 0x1d], al
movups xmmword [esp + 0x9c], xmm0
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4ae1d0
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0xa4]
call fcn.004b5700
mov bh, 0x2a
mov byte [esp + 0x1c], 0
mov al, 0x5e
mov byte [esp + 0x14], bh
mov dh, al
mov byte [esp + 0x1c], 0
mov ah, 0x6b
xor al, bh
xor ah, bh
mov byte [esp + 0x15], al
mov cl, 0x41
mov byte [esp + 0x19], ah
mov ch, 0x19
lea eax, [esp + 0x15]
xor cl, bh
xor ch, bh
mov dl, 0x4f
mov byte [esp + 0x16], cl
mov bl, 0x79
mov byte [esp + 0x1a], ch
xor dl, bh
lea ecx, [esp + 0x9c]
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.004b44f0
mov ecx, dword [esp + 0xb0]
cmp ecx, 0x10
jb 0x4ae282
mov edx, dword [esp + 0x9c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4ae278
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4ae278
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.004c718d
add esp, 8
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0xf
mov byte [esp + 0x9c], 0
mov dword [0x4d77c0], 5
jmp 0x4adb3b
lea eax, [ecx - 0x97]
lea esi, [edx - 0x22b]
cmp eax, 0x14
ja 0x4ae2d4
cmp esi, 0x14
ja 0x4ae2d4
mov dword [0x4d77c0], 0x3e9
jmp 0x4adb3b
lea eax, [ecx - 0xbf]
cmp eax, 0x14
ja 0x4ae63d
cmp edx, 0x22b
jl 0x4ae63d
cmp edx, 0x23f
jg 0x4ae63d
mov al, 0x13
mov byte [esp + 0x14], 0x24
mov dl, al
mov byte [esp + 0x22], al
xor al, byte [esp + 0x14]
mov bl, 0x5d
mov byte [esp + 0x15], al
mov cl, 0x75
mov al, byte [esp + 0x14]
mov ch, 0x70
mov dh, 0x6e
mov byte [esp + 0x1e], 0
mov bh, bl
mov byte [esp + 0x1e], 0
xor cl, al
mov dword [esp + 0x4c], 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 ah, 0x60
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
mov al, byte [esp + 0x22]
lea ecx, [esp + 0x15]
xor al, byte [esp + 0x14]
lea edx, [ecx + 1]
xorps xmm0, xmm0
mov byte [esp + 0x1c], bh
mov byte [esp + 0x1d], al
movups xmmword [esp + 0x3c], xmm0
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4ae380
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x44]
call fcn.004b5700
mov byte [esp + 0x14], 0xa
mov al, 0x7d
xor al, byte [esp + 0x14]
mov cl, 0x4d
mov ch, 0x6f
mov byte [esp + 0x15], al
mov al, byte [esp + 0x14]
mov dl, 0x60
xor cl, al
mov byte [esp + 0x1d], 0
xor ch, al
mov byte [esp + 0x16], cl
mov dh, 0x4c
mov byte [esp + 0x1a], ch
mov bl, 0x73
mov byte [esp + 0x1d], 0
mov ah, 0x3e
mov dword [esp + 0x34], 0
xor dl, al
mov dword [esp + 0x38], 0
xor dh, al
mov byte [esp + 0x17], dl
mov bh, 0x32
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]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4ae410
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x2c]
call fcn.004b5700
mov dh, 0x11
mov byte [esp + 0x1b], 0
mov bl, 0x5a
mov byte [esp + 0x14], dh
mov dl, 0x20
mov byte [esp + 0x1b], 0
mov cl, 0x29
mov ah, bl
xor cl, dh
xor dl, dh
mov al, 0x66
mov byte [esp + 0x17], dl
mov ch, 0x46
mov byte [esp + 0x16], cl
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 0x4ae470
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.004b5da0
add esp, 8
test al, al
je 0x4ae5ca
mov byte [esp + 0x14], 0x1a
mov al, 0x43
xor al, byte [esp + 0x14]
mov cl, 0x42
mov ch, 0x6c
mov byte [esp + 0x15], al
mov al, byte [esp + 0x14]
mov dl, 0x63
xor cl, al
mov byte [esp + 0x1d], 0
xor ch, al
mov byte [esp + 0x16], cl
mov dh, 0x54
mov byte [esp + 0x1a], ch
mov bl, 0x2b
mov byte [esp + 0x1d], 0
mov ah, 0x4b
mov dword [esp + 0x34], 0
xor dl, al
mov dword [esp + 0x38], 0
xor dh, al
mov byte [esp + 0x17], dl
mov bh, 0x77
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]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4ae520
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x2c]
call fcn.004b5700
mov dh, 0x53
mov byte [esp + 0x1b], 0
mov dl, 0x12
mov byte [esp + 0x14], dh
mov bl, dl
mov byte [esp + 0x1b], 0
mov cl, 0x3a
mov al, 0x18
xor cl, dh
mov ah, 0x62
mov ch, 3
mov byte [esp + 0x16], cl
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 0x4ae580
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x2c]
call fcn.004b4cc0
mov ecx, dword [esp + 0x38]
cmp ecx, 0x10
jb 0x4ae5ca
mov edx, dword [esp + 0x24]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4ae5c0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4ae61e
push ecx
push edx
call fcn.004c718d
add esp, 8
cmp edi, 0x10
jb 0x4ae5f6
lea ecx, [edi + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x4ae5ec
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4ae61e
push ecx
push esi
call fcn.004c718d
add esp, 8
mov ecx, dword [esp + 0x50]
cmp ecx, 0x10
jb 0x4ae62e
mov edx, dword [esp + 0x3c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4ae624
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4ae624
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.004c718d
add esp, 8
mov dword [0x4d77c0], 0x3ea
jmp 0x4adb3b
lea eax, [ecx - 0xe7]
cmp eax, 0x14
ja 0x4ae65c
cmp esi, 0x14
ja 0x4ae65c
mov dword [0x4d77c0], 0x3eb
jmp 0x4adb3b
cmp ecx, 0x28
jl 0x4ae837
cmp ecx, 0x168
jg 0x4ae837
lea eax, [edx - 0x109]
cmp eax, 0x36
ja 0x4ae69f
push 0x7f01
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov dword [0x4d77c0], 0x7d1
jmp 0x4aea20
cmp edx, 0x149
jl 0x4ae837
cmp edx, 0x17f
jg 0x4ae837
mov al, 6
mov byte [esp + 0x14], 0x44
mov dl, al
mov byte [esp + 0x22], 0x1c
xor al, byte [esp + 0x14]
mov cl, 0x1e
xor cl, byte [esp + 0x14]
mov ch, 0xe
mov byte [esp + 0x15], al
mov dh, 0x16
mov al, byte [esp + 0x22]
mov bl, 0x20
mov byte [esp + 0x16], cl
mov ah, 0x2d
mov cl, byte [esp + 0x14]
mov bh, 0xb
xor al, cl
mov byte [esp + 0x23], 0x13
xor dl, cl
mov byte [esp + 0x1d], al
mov al, byte [esp + 0x23]
xor ch, cl
xor dh, cl
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 + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4ae750
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x2c]
call fcn.004b5700
mov al, 0x36
mov byte [esp + 0x14], 3
mov bl, al
mov byte [esp + 0x23], 0x6d
xor al, byte [esp + 0x14]
mov cl, 0x77
mov byte [esp + 0x15], al
mov dl, 0x70
mov al, byte [esp + 0x14]
mov ah, 0x65
xor cl, al
mov byte [esp + 0x1e], 0
xor dl, al
mov byte [esp + 0x16], cl
xor bl, al
mov byte [esp + 0x17], dl
xor ah, al
mov byte [esp + 0x18], bl
mov ch, 0x57
mov byte [esp + 0x19], ah
xor ch, al
mov byte [esp + 0x1e], 0
mov dh, 0x6b
mov byte [esp + 0x1a], ch
xor dh, al
lea ecx, [esp + 0x24]
mov bh, 0x35
mov byte [esp + 0x1b], dh
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.004b44f0
mov ecx, dword [esp + 0x38]
cmp ecx, 0x10
jb 0x4ae814
mov edx, dword [esp + 0x24]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4ae80a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4ae80a
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.004c718d
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 [0x4d77c0], 0x7d2
jmp 0x4aea20
lea eax, [ecx - 0x46]
cmp eax, 0x104
ja 0x4ae85b
lea eax, [edx - 0x1f7]
cmp eax, 0x18
ja 0x4ae85b
mov dword [0x4d77c0], 0xfa1
jmp 0x4adb3b
cmp edi, 0xa0
ja 0x4ae9db
cmp edx, 0x190
jl 0x4ae9db
cmp edx, 0x1ab
jg 0x4ae9db
mov byte [esp + 0x14], 0x19
mov al, 0x56
xor al, byte [esp + 0x14]
mov cl, 0x60
mov byte [esp + 0x15], al
mov dl, 0x6c
mov al, byte [esp + 0x14]
mov ch, 0x7a
mov dh, 0x6f
mov byte [esp + 0x23], 0x41
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, 0x2e
mov byte [esp + 0x1b], dh
mov ah, 0x28
mov byte [esp + 0x1e], 0
mov bh, 0x20
mov dword [esp + 0x34], 0
xor bl, al
mov dword [esp + 0x38], 0
xor ah, al
mov byte [esp + 0x18], bl
xor bh, al
mov byte [esp + 0x19], ah
mov al, byte [esp + 0x23]
lea ecx, [esp + 0x15]
xor al, byte [esp + 0x14]
lea edx, [ecx + 1]
xorps xmm0, xmm0
mov byte [esp + 0x1c], bh
mov byte [esp + 0x1d], al
movups xmmword [esp + 0x24], xmm0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4ae904
sub ecx, edx
lea eax, [esp + 0x15]
push ecx
push eax
lea ecx, [esp + 0x2c]
call fcn.004b5700
mov byte [esp + 0x14], 0xb
mov al, 0x45
xor al, byte [esp + 0x14]
mov dl, 0x5e
mov byte [esp + 0x15], al
mov ah, 0x69
mov al, byte [esp + 0x14]
mov dh, dl
xor ah, al
mov byte [esp + 0x1d], 0
mov cl, 0x52
mov byte [esp + 0x19], ah
mov ch, 0x47
mov byte [esp + 0x1d], 0
xor cl, al
xor ch, al
mov bl, 0x65
mov byte [esp + 0x16], cl
mov bh, 0x4d
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.004b44f0
mov ecx, dword [esp + 0x38]
cmp ecx, 0x10
jb 0x4ae9b7
mov edx, dword [esp + 0x24]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4ae9ad
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4ae9ad
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.004c718d
add esp, 8
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0xf
mov byte [esp + 0x24], 0
mov dword [0x4d77c0], 0xfa2
jmp 0x4adb3b
lea eax, [ecx - 0xe6]
cmp eax, 0x82
ja 0x4aea02
lea eax, [edx - 0x190]
cmp eax, 0x1b
ja 0x4aea02
mov dword [0x4d77c0], 0xfa3
jmp 0x4adb3b
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov dword [0x4d77c0], 0
cmp ebp, dword [0x4d77c0]
je 0x4aeb02
mov edi, dword [0x4d7870]
xor ebx, ebx
mov eax, dword [edi + 0x3c]
mov ebp, dword [eax + edi + 0x78]
mov esi, dword [ebp + edi + 0x20]
add esi, edi
mov ecx, dword [esi]
mov edx, 0x23392052
add ecx, edi
mov al, byte [ecx]
inc ecx
test al, al
je 0x4aea6e
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4aea51
cmp edx, 0xfcdba375
je 0x4aea74
inc ebx
add esi, 4
jmp 0x4aea41
mov eax, dword [ebp + edi + 0x24]
push 0
push 0
push dword [0x4d7864]
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 [0x4d7870]
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]
mov ecx, dword [esi]
mov edx, 0x584e7a39
add ecx, ebx
mov al, byte [ecx]
inc ecx
test al, al
je 0x4aeadd
movsx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx - 1]
test al, al
jne 0x4aeac0
cmp edx, 0x3a4579c4
je 0x4aeae3
inc edi
add esi, 4
jmp 0x4aeab0
mov eax, dword [ebp + ebx + 0x24]
push dword [0x4d7864]
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 + 0xb4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004c6ef9
add esp, 0xac
ret