Function at 0x180043760
Capabilities:
Check for software breakpoints

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
sub rsp, 0x40
xor ebp, ebp
mov rsi, r8
mov rdi, rcx
mov r12d, ebp
cmp edx, 0xd2
jg 0x18004407c
je 0x180044066
add edx, 0xfffffffd
cmp edx, 0xcc
ja case.0x180045077.20030
movsxd rax, edx
lea rdx, [0x180000000]
movzx eax, byte [rdx + rax + 0x4541c]
mov ecx, dword [rdx + rax*4 + 0x452d4]
add rcx, rdx
jmp rcx
mov eax, dword [r8]
cmp eax, 0xffffffff
jl 0x180043cf1
mov dword [rdi + 0xbac], eax
jmp case.0x1800437c2.91
movsxd rax, dword [r8]
test eax, eax
js 0x180043cf1
mov qword [rdi + 0xe68], rax
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf50], ebp
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf54], ebp
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf48], ebp
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf34], ebp
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf1c], ebp
test ebp, ebp
je 0x180043857
or dword [rdi + 0x1024], 0x10
jmp case.0x1800437c2.91
and dword [rdi + 0x1024], 0xffffffef
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf40], ebp
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf20], ebp
jmp case.0x1800437c2.91
mov eax, ebp
cmp dword [r8], eax
setne al
mov dword [rdi + 0xf44], eax
test eax, eax
je 0x1800438ae
mov dword [rdi + 0xa18], 5
mov dword [rdi + 0xf40], ebp
jmp case.0x1800437c2.91
mov ebx, 1
mov dword [rdi + 0xa18], ebx
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xef4], ebp
jmp case.0x1800437c2.91
mov eax, dword [r8]
cmp eax, 0x20c49b
ja 0x180043cf1
imul eax, eax, 0x3e8
mov dword [rdi + 0x7b0], eax
jmp case.0x1800437c2.91
mov eax, dword [r8]
test eax, eax
js 0x180043cf1
mov dword [rdi + 0x7b8], eax
jmp case.0x1800437c2.91
mov eax, dword [r8]
cmp eax, 2
ja 0x180043cf1
mov dword [rdi + 0xc00], eax
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xefc], ebp
jmp case.0x1800437c2.91
mov eax, dword [r8]
cmp eax, 3
ja 0x180043cf1
mov dword [rdi + 0xa08], eax
jmp case.0x1800437c2.91
movsxd rax, dword [r8]
mov qword [rdi + 0xa10], rax
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf3c], ebp
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf2c], ebp
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf28], ebp
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf30], ebp
jmp case.0x1800437c2.91
mov eax, dword [r8]
cmp eax, 0xffffffff
jl 0x180043cf1
mov dword [rdi + 0x6d4], eax
jmp case.0x1800437c2.91
mov eax, dword [r8]
test eax, eax
js 0x180043cf1
and eax, 7
mov dword [rdi + 0x6d8], eax
jmp case.0x1800437c2.91
cmp dword [r8], ebp
je 0x1800438ae
mov dword [rdi + 0xa18], 2
mov dword [rdi + 0xf40], ebp
jmp case.0x1800437c2.91
movsxd rbx, dword [r8]
cmp rbx, 0xffffffffffffffff
jl 0x180043cf1
cmp qword [rdi + 0x6f0], rbx
jge 0x180043a21
lea rcx, [rdi + 0xe10]
mov rax, qword [rcx]
cmp qword [rdi + 0x6e0], rax
jne 0x180043a21
xor edx, edx
call fcn.1800435f0
mov qword [rdi + 0x6e0], rbp
mov qword [rdi + 0x6f0], rbx
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xee4], ebp
jmp case.0x1800437c2.91
cmp dword [r8], ebp
je case.0x1800437c2.91
mov ebx, 1
mov qword [rdi + 0xf40], rbp
mov dword [rdi + 0xa18], ebx
jmp case.0x1800437c2.91
mov eax, dword [r8]
test eax, eax
js 0x180043cf1
cmp eax, 3
jl 0x180043a79
mov eax, 1
jmp 0x1800452b9
mov dword [rdi + 0xa1c], eax
jmp case.0x1800437c2.91
mov ecx, dword [r8]
test ecx, ecx
jne 0x180043a96
mov dword [rdi + 0x6c4], ebp
jmp case.0x1800437c2.91
mov eax, ecx
shr eax, 4
and eax, 1
mov dword [rdi + 0x12e4], eax
test cl, 0x10
je 0x180043aaf
and ecx, 0xffffffef
or ecx, 2
and ecx, 0xffffffdb
mov eax, ebp
inc ebp
bt ecx, eax
jb 0x180043aca
cmp ebp, 0x1f
jl 0x180043ab2
mov eax, 4
jmp 0x1800452b9
mov dword [rdi + 0x6c4], ecx
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xef8], ebp
jmp case.0x1800437c2.91
mov eax, dword [r8]
cmp eax, 0xffff
ja 0x180043cf1
mov dword [rdi + 0x698], eax
jmp case.0x1800437c2.91
mov ecx, dword [r8]
test ecx, ecx
jne 0x180043b12
mov dword [rdi + 0x6c8], ebp
jmp case.0x1800437c2.91
mov eax, ecx
shr eax, 4
and eax, 1
mov dword [rdi + 0x12fc], eax
test cl, 0x10
je 0x180043b2b
and ecx, 0xffffffef
or ecx, 2
and ecx, 0xffffffdb
nop
mov eax, ebp
inc ebp
bt ecx, eax
jb 0x180043b48
cmp ebp, 0x1f
jl 0x180043b30
mov eax, 4
jmp 0x1800452b9
mov dword [rdi + 0x6c8], ecx
jmp case.0x1800437c2.91
mov eax, dword [r8]
cmp eax, 7
ja 0x180043cf1
mov dword [rdi + 0xba8], eax
jmp case.0x1800437c2.91
mov ecx, dword [r8]
test ecx, ecx
je 0x180043b89
dec ecx
jne case.0x180045077.20030
mov ebx, 1
mov dword [rdi + 0xf70], ebx
jmp case.0x1800437c2.91
mov dword [rdi + 0xf70], ebp
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf04], ebp
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf00], ebp
jmp case.0x1800437c2.91
mov eax, dword [r8]
cmp eax, 3
ja 0x180043cf1
mov dword [rdi + 0xbe0], eax
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf10], ebp
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf0c], ebp
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf14], ebp
jmp case.0x1800437c2.91
mov eax, dword [r8]
cmp eax, 2
ja 0x180043cf1
mov dword [rdi + 0xbe8], eax
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf18], ebp
jmp case.0x1800437c2.91
mov eax, dword [r8]
cmp eax, 2
ja 0x180043cf1
mov dword [rdi + 0xbe4], eax
jmp case.0x1800437c2.91
mov ecx, dword [r8]
test ecx, ecx
je 0x180043c77
dec ecx
je 0x180043c67
dec ecx
jne case.0x180045077.20030
mov dword [rdi + 0xbec], 2
jmp case.0x1800437c2.91
mov ebx, 1
mov dword [rdi + 0xbec], ebx
jmp case.0x1800437c2.91
mov dword [rdi + 0xbec], ebp
jmp case.0x1800437c2.91
movsxd rax, dword [r8]
cmp eax, 0xffffffff
jl 0x180043cf1
mov qword [rdi + 0x7c0], rax
jmp case.0x1800437c2.91
mov eax, dword [r8]
test eax, eax
js 0x180043cf1
mov dword [rdi + 0x7c8], eax
jmp case.0x1800437c2.91
mov eax, dword [r8]
test eax, eax
js 0x180043cf1
mov dword [rdi + 0x7cc], eax
jmp case.0x1800437c2.91
mov eax, dword [r8]
cmp eax, 0xffff
ja 0x180043cf1
mov dword [rdi + 0x6c0], eax
jmp case.0x1800437c2.91
mov eax, dword [r8]
cmp eax, 0x20c49b
ja 0x180043cf1
imul eax, eax, 0x3e8
mov dword [rdi + 0x7a0], eax
jmp case.0x1800437c2.91
mov eax, dword [r8]
test eax, eax
jns 0x180043cdf
mov eax, Ordinal_46
jmp 0x1800452b9
mov eax, dword [r8]
cmp eax, 0x20c49b
ja 0x180043cf1
imul eax, eax, 0x3e8
mov dword [rdi + 0x7a4], eax
jmp case.0x1800437c2.91
mov eax, dword [r8]
test eax, eax
jns 0x180043d0b
mov eax, Ordinal_46
jmp 0x1800452b9
movsxd rax, dword [r8]
cmp eax, 0xffffffff
jl 0x180043cf1
mov qword [rdi + 0x7e0], rax
jmp case.0x1800437c2.91
lea rcx, [rdi + 0xd70]
xor edx, edx
call fcn.1800435f0
mov r12d, 4
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xee8], ebp
jmp case.0x1800437c2.91
mov ecx, dword [r8]
cmp ecx, 0xffff
ja 0x180043cf1
call fcn.18004edf0
mov word [rdi + 0x6f8], ax
jmp case.0x1800437c2.91
mov ecx, dword [r8]
cmp ecx, 0xffff
ja 0x180043cf1
call fcn.18004ee10
mov dword [rdi + 0x6fc], eax
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xa68], ebp
mov rax, qword [rdi + 0x10]
test rax, rax
je case.0x1800437c2.91
mov dword [rax + 0x358], ebp
jmp case.0x1800437c2.91
test byte [r8], 3
setne bpl
mov dword [rdi + 0xa6c], ebp
mov rax, qword [rdi + 0x10]
test rax, rax
je case.0x1800437c2.91
mov dword [rax + 0x35c], ebp
jmp case.0x1800437c2.91
mov eax, dword [r8]
mov ebx, 0x80000
cmp eax, ebx
jg 0x180043e10
cmp eax, 1
jge 0x180043e04
mov ebx, 0x4000
jmp 0x180043e10
mov ecx, 0x400
mov ebx, eax
cmp eax, ecx
cmovl ebx, ecx
cmp ebx, dword [rdi + 0xbb0]
je 0x180043e46
mov rcx, qword [rdi + 0x11b0]
lea eax, [rbx + 1]
movsxd rdx, eax
call qword [fcn.1800346f4]
test rax, rax
jne 0x180043e3f
lea r12d, [rax + 0x1b]
mov dword [rdi + 0xbb0], ebx
jmp case.0x1800437c2.91
mov qword [rdi + 0x11b0], rax
mov dword [rdi + 0xbb0], ebx
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf58], ebp
jmp case.0x1800437c2.91
movsxd rax, dword [r8]
test eax, eax
js 0x180043cf1
mov qword [rdi + 0xbd8], rax
jmp case.0x1800437c2.91
mov eax, dword [r8]
cmp eax, 2
ja 0x180043cf1
mov dword [rdi + 0xbd0], eax
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf5c], ebp
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf60], ebp
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf64], ebp
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xa74], ebp
mov dword [rdi + 0xb34], ebp
jmp case.0x1800437c2.91
cmp dword [r8], ebp
sete bpl
mov dword [rdi + 0xf68], ebp
jmp case.0x1800437c2.91
cmp dword [r8], ebp
sete bpl
mov dword [rdi + 0xf6c], ebp
jmp case.0x1800437c2.91
mov eax, dword [r8]
cmp eax, 0x1ff
ja 0x180043cf1
mov dword [rdi + 0xc08], eax
jmp case.0x1800437c2.91
mov eax, dword [r8]
cmp eax, 0x1ff
ja 0x180043cf1
mov dword [rdi + 0xc0c], eax
jmp case.0x1800437c2.91
mov eax, dword [r8]
mov dword [rdi + 0xe18], eax
jmp case.0x1800437c2.91
mov eax, dword [r8]
mov dword [rdi + 0xe1c], eax
jmp case.0x1800437c2.91
mov eax, dword [r8]
mov dword [rdi + 0xe20], eax
jmp case.0x1800437c2.91
mov eax, dword [r8]
dec eax
cmp eax, 0xa
ja case.default.0x180043f79
cdqe
mov ecx, dword [rdx + rax*4 + 0x454ec]
add rcx, rdx
jmp rcx
mov ebx, 1
mov dword [rdi + 0xe30], ebx
jmp case.0x1800437c2.91
mov ebx, 2
mov dword [rdi + 0xe30], ebx
jmp case.0x1800437c2.91
mov ebx, 3
mov dword [rdi + 0xe30], ebx
jmp case.0x1800437c2.91
mov ebx, 4
mov dword [rdi + 0xe30], ebx
jmp case.0x1800437c2.91
mov ebx, 5
mov dword [rdi + 0xe30], ebx
jmp case.0x1800437c2.91
mov ebx, 6
mov dword [rdi + 0xe30], ebx
jmp case.0x1800437c2.91
mov ebx, 7
mov dword [rdi + 0xe30], ebx
jmp case.0x1800437c2.91
mov ebx, 8
mov dword [rdi + 0xe30], ebx
jmp case.0x1800437c2.91
mov ebx, 9
mov dword [rdi + 0xe30], ebx
jmp case.0x1800437c2.91
mov ebx, 0xa
mov dword [rdi + 0xe30], ebx
jmp case.0x1800437c2.91
mov ebx, reloc.WS2_32.dll_inet_addr
mov dword [rdi + 0xe30], ebx
jmp case.0x1800437c2.91
mov ebx, ebp
mov dword [rdi + 0xe30], ebx
jmp case.0x1800437c2.91
mov eax, dword [r8]
mov dword [rdi + 0x15d0], eax
jmp case.0x1800437c2.91
mov eax, dword [r8]
mov dword [rdi + 0x15d4], eax
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf78], ebp
jmp case.0x1800437c2.91
mov eax, dword [r8]
test eax, eax
js 0x180043cf1
mov dword [rcx + 0xe58], eax
jmp case.0x1800437c2.91
cmp edx, 0x2711
jg 0x180044315
je 0x180044306
add edx, 0xffffff2c
cmp edx, 0x4c
ja case.0x180045077.20030
movsxd rax, edx
lea rdx, [0x180000000]
movzx eax, byte [rdx + rax + 0x4558c]
mov ecx, dword [rdx + rax*4 + 0x45518]
add rcx, rdx
jmp rcx
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf24], ebp
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xedc], ebp
jmp case.0x1800437c2.91
mov r12d, 0x30
jmp case.0x1800437c2.91
mov eax, dword [r8]
and eax, 1
mov dword [rdi + 0xee0], eax
jmp case.0x1800437c2.91
mov eax, dword [r8]
test eax, eax
js 0x180043cf1
mov dword [rdi + 0xe70], eax
jmp case.0x1800437c2.91
mov eax, dword [r8]
cmp eax, 1
jg 0x180043cf1
test eax, eax
setne bpl
mov dword [rdi + 0xfb4], ebp
jmp case.0x1800437c2.91
mov eax, dword [r8]
mov dword [rdi + 0x6cc], eax
test eax, 0xfffffffa
je case.0x1800437c2.91
mov r12d, 4
jmp case.0x1800437c2.91
mov eax, dword [r8]
test eax, eax
js 0x180043cf1
mov dword [rdi + 0x7a8], eax
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xfa0], ebp
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xb28], ebp
mov rax, qword [rdi + 0x10]
test rax, rax
je case.0x1800437c2.91
mov dword [rax + 0x3b0], ebp
jmp case.0x1800437c2.91
test byte [r8], 3
setne bpl
mov dword [rdi + 0xb2c], ebp
mov rax, qword [rdi + 0x10]
test rax, rax
je case.0x1800437c2.91
mov dword [rax + 0x3b4], ebp
jmp case.0x1800437c2.91
mov ecx, dword [r8]
mov eax, 0x200000
cmp ecx, eax
jg 0x1800441d4
mov ebx, 0x4000
mov eax, ecx
cmp ecx, ebx
cmovl eax, ebx
cdqe
mov qword [rdi + 0xbb8], rax
mov rcx, qword [rdi + 0x11b8]
call qword [fcn.1800337e4]
mov qword [rdi + 0x11b8], rbp
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf74], ebp
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf7c], ebp
jmp case.0x1800437c2.91
mov eax, dword [r8]
test eax, eax
js 0x180043cf1
mov dword [rdi + 0xe5c], eax
jmp case.0x1800437c2.91
mov eax, dword [r8]
test eax, eax
js 0x180043cf1
mov dword [rdi + 0xe60], eax
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf84], ebp
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf88], ebp
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf8c], ebp
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf90], ebp
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf94], ebp
jmp case.0x1800437c2.91
mov eax, dword [r8]
test eax, eax
js 0x180043cf1
mov dword [rdi + 0x7ac], eax
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xf98], ebp
jmp case.0x1800437c2.91
cmp dword [r8], ebp
setne bpl
mov dword [rdi + 0xfa8], ebp
jmp case.0x1800437c2.91
mov eax, dword [r8]
test eax, eax
js 0x180043cf1
mov dword [rdi + 0xea0], eax
jmp case.0x1800437c2.91
mov eax, dword [r8]
test eax, eax
js 0x180043cf1
mov dword [rdi + 0x7b4], eax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rcx + 0x6a0], rax
jmp case.0x1800437c2.91
cmp edx, 0x27fb
jg 0x180044dff
je case.0x180044355.10060
add edx, 0xffffd8ee
cmp edx, 0xe4
ja case.0x180045077.20030
movsxd rax, edx
lea rdx, [0x180000000]
movzx eax, byte [rdx + rax + 0x45704]
mov ecx, dword [rdx + rax*4 + 0x455dc]
add rcx, rdx
jmp rcx
mov rdx, qword [r8]
lea rcx, [rdi + 0xd18]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xd40]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xd38]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xcb8]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
test rdx, rdx
je 0x1800443f6
cmp byte [rdx], bpl
jne 0x1800443f6
call fcn.18004e950
mov rbx, rax
test rax, rax
jne 0x1800443d6
lea r12d, [rax + 0x1b]
jmp case.0x1800437c2.91
lea rcx, [rdi + 0xc60]
mov rdx, rax
call fcn.1800435f0
mov rcx, rbx
mov r12d, eax
call qword [fcn.1800337e4]
jmp case.0x1800437c2.91
lea rcx, [rdi + 0xc60]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rsi, qword [r8]
test rsi, rsi
je 0x18004447b
mov rax, qword [rdi + 0x6f0]
cmp rax, 0xffffffffffffffff
je 0x18004447b
test rax, rax
js 0x180044453
lea rcx, [rdi + 0xe10]
xor edx, edx
call fcn.1800435f0
mov r11, qword [rdi + 0x6f0]
mov ecx, 1
test r11, r11
cmovne rcx, r11
call qword [fcn.1800339ec]
mov rbx, rax
test rax, rax
jne 0x18004445b
mov r12d, reloc.WLDAP32.dll_Ordinal_27
jmp 0x18004448d
mov r8, qword [rdi + 0x6f0]
test r8, r8
je 0x180044472
mov rdx, rsi
mov rcx, rax
call fcn.180033ff0
mov qword [rdi + 0xe10], rbx
jmp 0x18004448d
lea rcx, [rdi + 0xe10]
mov rdx, rsi
call fcn.1800435f0
mov r12d, eax
mov rax, qword [rdi + 0xe10]
mov dword [rdi + 0xa18], 2
mov qword [rdi + 0x6e0], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
lea rcx, [rdi + 0xe10]
xor edx, edx
mov qword [rdi + 0x6e0], rax
call fcn.1800435f0
mov dword [rdi + 0xa18], 2
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov dword [rdi + 0xa18], 3
mov dword [rdi + 0xf40], ebp
mov qword [rdi + 0x7f8], rax
jmp case.0x1800437c2.91
cmp dword [rdi + 0xfdc], ebp
je 0x180044512
mov rcx, qword [rdi + 0xfc0]
call qword [fcn.1800337e4]
mov qword [rdi + 0xfc0], rbp
mov dword [rdi + 0xfdc], ebp
mov rdx, qword [rsi]
lea rcx, [rdi + 0xcd8]
call fcn.1800435f0
mov r12d, eax
mov rax, qword [rdi + 0xcd8]
mov qword [rdi + 0xfc0], rax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xd48]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x7e8], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x7f0], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0xbc8], rax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xc38]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
test rdx, rdx
je case.0x1800437c2.91
mov rcx, qword [rdi + 0xfc8]
call fcn.18004e880
test rax, rax
jne 0x1800445cc
mov rcx, qword [rdi + 0xfc8]
call fcn.18004e8e0
mov qword [rdi + 0xfc8], rbp
mov eax, reloc.WLDAP32.dll_Ordinal_27
jmp 0x1800452b9
mov qword [rdi + 0xfc8], rax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xc40]
call fcn.1800435f0
mov r9d, dword [rdi + 0xee4]
mov r8, qword [rdi + 0xfe8]
xor edx, edx
mov rcx, rdi
mov ebx, eax
call fcn.18004e010
mov r12d, reloc.WLDAP32.dll_Ordinal_27
test rax, rax
mov qword [rdi + 0xfe8], rax
cmove ebx, r12d
mov r12d, ebx
jmp case.0x1800437c2.91
mov rsi, qword [r8]
test rsi, rsi
je case.0x1800437c2.91
lea rdx, [0x18009fb40]
mov rcx, rsi
call fcn.18004e600
test eax, eax
je 0x18004466a
mov edx, 2
mov rcx, rdi
mov r8d, edx
call fcn.18004e770
mov rcx, qword [rdi + 0xfe8]
call fcn.18004e3f0
mov edx, 2
mov rcx, rdi
call fcn.18004e7b0
jmp case.0x1800437c2.91
lea rdx, str.SESS
mov rcx, rsi
call fcn.18004e600
test eax, eax
je 0x1800446ab
mov edx, 2
mov rcx, rdi
mov r8d, edx
call fcn.18004e770
mov rcx, qword [rdi + 0xfe8]
call fcn.18004db50
mov edx, 2
mov rcx, rdi
call fcn.18004e7b0
jmp case.0x1800437c2.91
lea rdx, str.FLUSH
mov rcx, rsi
call fcn.18004e600
test eax, eax
je 0x1800446cd
xor edx, edx
mov rcx, rdi
call fcn.18004e4f0
jmp case.0x1800437c2.91
lea rdx, str.RELOAD
mov rcx, rsi
call fcn.18004e600
test eax, eax
je 0x1800446ed
mov rcx, rdi
call fcn.18004e450
jmp case.0x1800437c2.91
mov ebx, 1
cmp qword [rdi + 0xfe8], rbp
jne 0x180044712
mov r9d, ebx
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.18004e010
mov qword [rdi + 0xfe8], rax
mov rcx, rsi
call qword [fcn.180043464]
mov rsi, rax
test rax, rax
je 0x1800447aa
cmp qword [rdi + 0xfe8], rbp
je 0x1800447aa
mov edx, 2
mov rcx, rdi
mov r8d, edx
call fcn.18004e770
lea rcx, str.Set_Cookie:
mov r8d, reloc.WS2_32.dll_inet_addr
mov rdx, rsi
call fcn.18004e760
mov rdx, qword [rdi + 0xfe8]
mov dword [rsp + 0x38], ebx
xor r9d, r9d
mov qword [rsp + 0x30], rbp
mov rcx, rdi
mov qword [rsp + 0x28], rbp
test eax, eax
je 0x180044782
lea rax, [rsi + 0xb]
mov r8d, ebx
mov qword [rsp + 0x20], rax
jmp 0x18004478a
mov qword [rsp + 0x20], rsi
xor r8d, r8d
call fcn.18004cc10
mov edx, 2
mov rcx, rdi
call fcn.18004e7b0
mov rcx, rsi
call qword [fcn.1800337e4]
jmp case.0x1800437c2.91
mov rcx, rax
mov r12d, reloc.WLDAP32.dll_Ordinal_27
call qword [fcn.1800337e4]
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xc48]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xcc0]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x6b0], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x690], rax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xc78]
call fcn.1800435f0
cmp qword [rdi + 0xc78], rbp
setne bpl
mov r12d, eax
mov dword [rdi + 0xf08], ebp
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xc68]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xc70]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xcb0]
call fcn.1800435f0
cmp qword [rdi + 0xcb0], rbp
setne bpl
mov r12d, eax
mov dword [rdi + 0xf4c], ebp
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x6a8], rax
jmp case.0x1800437c2.91
cmp dword [rdi + 0xfd8], ebp
je 0x1800448b9
mov rcx, qword [rdi + 0xfb8]
call qword [fcn.1800337e4]
mov qword [rdi + 0xfb8], rbp
mov dword [rdi + 0xfd8], ebp
mov rdx, qword [rsi]
lea rcx, [rdi + 0xce0]
call fcn.1800435f0
mov r12d, eax
mov rax, qword [rdi + 0xce0]
mov qword [rdi + 0xfb8], rax
jmp case.0x1800437c2.91
mov rcx, qword [rsi]
lea r8, [rdi + 0xd80]
lea rdx, [rdi + 0xd78]
call fcn.180043680
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xd78]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xd80]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xd88]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xde0]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x9c8], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x9d0], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x9c0], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x9f8], rax
mov qword [rdi + 0xfd0], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x790], rax
jmp case.0x1800437c2.91
mov rcx, qword [rsi]
lea r8, [rdi + 0xd98]
lea rdx, [rdi + 0xd90]
call fcn.180043680
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xd90]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xd98]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xda0]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xcd0]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x688], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x680], rax
test rax, rax
jne case.0x1800437c2.91
call fcn.18003b4e8
add rax, 0x60
mov qword [rdi + 0x680], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x770], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x798], rax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xc18]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xc28]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xc80]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xca0]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xc90]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
test rdx, rdx
je case.0x1800437c2.91
cmp byte [rdx], bpl
je case.0x1800437c2.91
lea rcx, [rdi + 0xd70]
call fcn.1800435f0
mov r12d, eax
test eax, eax
jne case.0x1800437c2.91
lea r12d, [rax + 4]
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xc58]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xcf8]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xd50]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xd60]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x9f0], rax
jmp case.0x1800437c2.91
mov rsi, qword [r8]
mov ebx, 1
cmp qword [rdi + 0xe0], rbp
je 0x180044c32
lea r8d, [rbx + 1]
mov edx, ebx
mov rcx, rdi
call fcn.18004e770
cmp dword [rdi + 0xc8], 2
jne 0x180044bc5
mov qword [rdi + 0xc0], rbp
mov dword [rdi + 0xc8], ebp
mov rdx, qword [rdi + 0xfe8]
mov rcx, qword [rdi + 0xe0]
cmp qword [rcx + 0xa8], rdx
mov rax, rdx
cmove rdx, rbp
mov qword [rdi + 0xfe8], rdx
mov rcx, qword [rdi + 0xe0]
mov rdx, qword [rdi + 0x11d8]
cmp qword [rcx + 0xb0], rdx
mov rax, rdx
cmove rdx, rbp
mov qword [rdi + 0x11d8], rdx
mov rax, qword [rdi + 0xe0]
mov edx, ebx
mov ecx, dword [rax + 4]
mov rax, qword [rdi + 0xe0]
dec ecx
mov dword [rax + 4], ecx
mov rcx, rdi
call fcn.18004e7b0
mov qword [rdi + 0xe0], rbp
mov qword [rdi + 0xe0], rsi
test rsi, rsi
je case.0x1800437c2.91
mov r8d, 2
mov edx, ebx
mov rcx, rdi
call fcn.18004e770
mov r11, qword [rdi + 0xe0]
mov ecx, dword [r11 + 4]
mov rax, qword [rdi + 0xe0]
inc ecx
mov dword [rax + 4], ecx
mov rax, qword [rdi + 0xe0]
test byte [rax], 8
je 0x180044c8a
add rax, 0x78
mov qword [rdi + 0xc0], rax
mov dword [rdi + 0xc8], 2
mov rax, qword [rdi + 0xe0]
cmp qword [rax + 0xa8], rbp
je 0x180044cbb
mov rcx, qword [rdi + 0xfe8]
call fcn.18004dc00
mov r11, qword [rdi + 0xe0]
mov rax, qword [r11 + 0xa8]
mov qword [rdi + 0xfe8], rax
mov rax, qword [rdi + 0xe0]
cmp qword [rax + 0xb0], rbp
je 0x180044cee
mov rcx, qword [rax + 0xb8]
mov qword [rdi + 0xba0], rcx
mov rax, qword [rdi + 0xe0]
mov rcx, qword [rax + 0xb0]
mov qword [rdi + 0x11d8], rcx
mov edx, ebx
mov rcx, rdi
call fcn.18004e7b0
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0xbc0], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x748], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x758], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x768], rax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xdd0]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xdd8]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0xe28], rax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xda8]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xdb0]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xdb8]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x6b8], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x16f0], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0xe50], rax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xdc0]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
cmp edx, 0x4e2b
jg 0x180045037
je 0x180044fff
add edx, 0xffffd804
cmp edx, 0x35
ja case.0x180045077.20030
movsxd rax, edx
lea rdx, [0x180000000]
movzx eax, byte [rdx + rax + 0x45844]
mov ecx, dword [rdx + rax*4 + 0x457ec]
add rcx, rdx
jmp rcx
mov rdx, qword [r8]
lea rcx, [rdi + 0xd20]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xde8]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [rsi]
lea rcx, [rdi + 0x800]
xor r8d, r8d
call fcn.18004c560
mov r12d, eax
test eax, eax
jne case.0x1800437c2.91
mov dword [rdi + 0xa18], 4
mov dword [rdi + 0xf40], ebp
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xcc8]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xdc8]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0xeb8], rax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xc20]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xc30]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xc88]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xca8]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xc98]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xd00]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xd58]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0xe98], rax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xc50]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xdf8]
call fcn.1800435f0
mov r12d, eax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0xa00], rax
jmp case.0x1800437c2.91
mov rdx, qword [r8]
lea rcx, [rdi + 0xdf0]
call fcn.1800435f0
cmp qword [rdi + 0xdf0], rbp
setne bpl
mov r12d, eax
mov dword [rdi + 0xfac], ebp
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0xec0], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rcx + 0x700], rax
test rax, rax
jne 0x180045027
lea rax, [fcn.1800350cc]
mov dword [rcx + 0xed4], ebp
mov qword [rcx + 0x700], rax
jmp case.0x1800437c2.91
mov ebx, 1
mov dword [rcx + 0xed4], ebx
jmp case.0x1800437c2.91
cmp edx, 0x4f30
jg 0x1800451ca
je 0x1800451bb
add edx, 0xffffb1d4
cmp edx, 0xcf
ja case.0x180045077.20030
movsxd rax, edx
lea rdx, [0x180000000]
movzx eax, byte [rdx + rax + 0x458c8]
mov ecx, dword [rdx + rax*4 + 0x4587c]
add rcx, rdx
jmp rcx
mov rax, qword [r8]
test rax, rax
mov qword [rdi + 0x720], rax
setne bpl
mov dword [rdi + 0x1174], ebp
jmp case.0x1800437c2.91
mov rax, qword [r8]
test rax, rax
mov qword [rdi + 0x728], rax
setne bpl
mov dword [rdi + 0x1174], ebp
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x730], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x708], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x718], rax
test rax, rax
jne 0x1800450f7
lea rax, [fcn.180034f20]
mov dword [rdi + 0xed0], ebp
mov qword [rdi + 0x718], rax
jmp case.0x1800437c2.91
mov ebx, 1
mov dword [rdi + 0xed0], ebx
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x6e8], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x778], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x780], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x788], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x738], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x740], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x750], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x760], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0x710], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0xe38], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0xe40], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rdi + 0xe48], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rcx + 0xe90], rax
jmp case.0x1800437c2.91
cmp edx, 0x75a8
jg 0x18004526d
je 0x180045247
sub edx, 0x4f3b
je 0x18004523b
sub edx, 0x2668
je 0x180045225
dec edx
je 0x18004520c
dec edx
jne case.0x180045077.20030
mov rax, qword [r8]
test rax, rax
js 0x180043cf1
mov qword [rcx + 0xbd8], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
cmp rax, 0xffffffffffffffff
jl 0x180043cf1
mov qword [rcx + 0x7e0], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
cmp rax, 0xffffffffffffffff
jl 0x180043cf1
mov qword [rcx + 0x7c0], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
mov qword [rcx + 0xec8], rax
jmp case.0x1800437c2.91
mov rbx, qword [r8]
cmp rbx, 0xffffffffffffffff
jl 0x180043cf1
cmp qword [rcx + 0x6f0], rbx
jge 0x180043a21
add rcx, 0xe10
jmp 0x180043a07
sub edx, 0x75c1
je 0x1800452a3
dec edx
je 0x18004528e
cmp edx, 0x7c
jne case.0x180045077.20030
mov rax, qword [r8]
mov qword [rcx + 0xa10], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
test rax, rax
js 0x180043cf1
mov qword [rcx + 0x7d8], rax
jmp case.0x1800437c2.91
mov rax, qword [r8]
test rax, rax
js 0x180043cf1
mov qword [rcx + 0x7d0], rax
mov eax, r12d
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
add rsp, 0x40
pop r12
ret