Function at 0x499650
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov rax, rsp
sub rsp, 0x98
mov qword [rax - 8], rbx
mov qword [rax - 0x18], rsi
mov qword [rax - 0x20], rdi
mov rdi, qword [rcx + 0x10]
mov qword [rax - 0x30], r13
mov qword [rax - 0x38], r14
xor r13d, r13d
test rdi, rdi
mov qword [rax - 0x40], r15
mov r14d, edx
mov rsi, rcx
mov qword [rsp + 0x40], rcx
mov r15, r9
jne 0x49970b
call fcn.0044f4c0
test rax, rax
mov rdi, rax
mov qword [rsi + 0x10], rax
je 0x4996f5
mov rcx, qword [rax + 0x30]
movsxd rbx, dword [rax + 0x3c]
cmp dword [rcx + 0x60], ebx
jg 0x4996c8
lea edx, [r13 + 1]
mov rcx, rax
call fcn.00441a80
test eax, eax
jne 0x4996f5
mov rax, qword [rdi + 8]
inc dword [rdi + 0x3c]
lea rcx, [rbx + rbx*2]
mov byte [rax + rcx*8], 0x99
mov byte [rax + rcx*8 + 3], r13b
mov dword [rax + rcx*8 + 4], r13d
mov dword [rax + rcx*8 + 8], r13d
mov dword [rax + rcx*8 + 0xc], r13d
mov qword [rax + rcx*8 + 0x10], r13
mov byte [rax + rcx*8 + 1], r13b
cmp qword [rsi + 0x1c0], r13
jne 0x49970b
mov rax, qword [rsi]
test byte [rax + 0x4c], 8
jne 0x49970b
mov byte [rsi + 0x23], 1
mov eax, dword [rsi + 0x50]
mov qword [rsp + 0x88], rbp
mov rbp, qword [rdi + 0x30]
movsxd rbx, dword [rbp + 0x78]
dec eax
mov dword [rsp + 0x30], eax
lea eax, [rbx + 1]
mov dword [rbp + 0x78], eax
lea eax, [rbx - 1]
test ebx, eax
jne 0x499753
mov rdx, qword [rbp + 0x80]
mov rcx, qword [rbp]
lea eax, [rbx + rbx + 1]
movsxd r8, eax
shl r8, 2
call fcn.0043b230
mov qword [rbp + 0x80], rax
mov rcx, qword [rbp + 0x80]
mov edx, 0xffffffff
test rcx, rcx
je 0x499767
mov dword [rcx + rbx*4], edx
mov qword [rsp + 0x70], r12
mov r12d, edx
sub r12d, ebx
cmp dword [rsp + 0xd8], r13d
mov dword [rsp + 0xa0], r12d
jge 0x4997da
mov rax, qword [rsp + 0xc0]
movsxd rbx, dword [rdi + 0x3c]
movzx ebp, byte [rax + 0x2c]
mov rax, qword [rdi + 0x30]
cmp dword [rax + 0x60], ebx
jg 0x4997ae
mov edx, 1
mov rcx, rdi
call fcn.00441a80
test eax, eax
jne 0x4997da
mov rax, qword [rdi + 8]
inc dword [rdi + 0x3c]
lea rcx, [rbx + rbx*2]
mov byte [rax + rcx*8], 0x87
mov byte [rax + rcx*8 + 3], r13b
mov dword [rax + rcx*8 + 4], ebp
mov dword [rax + rcx*8 + 8], r12d
mov dword [rax + rcx*8 + 0xc], r13d
mov qword [rax + rcx*8 + 0x10], r13
mov byte [rax + rcx*8 + 1], r13b
mov rax, qword [rsp + 0xc0]
mov ebx, r13d
cmp dword [rax + 0x28], r13d
jle 0x49988d
mov rbp, qword [rsp + 0xc8]
mov esi, dword [rsp + 0xd0]
mov r15, rax
mov r14d, r12d
nop
nop
nop
mov eax, dword [rbp]
movsxd r12, dword [rdi + 0x3c]
lea r13d, [rax + rsi + 1]
mov rax, qword [rdi + 0x30]
cmp dword [rax + 0x60], r12d
jg 0x499837
mov edx, 1
mov rcx, rdi
call fcn.00441a80
test eax, eax
jne 0x499864
inc dword [rdi + 0x3c]
mov rax, qword [rdi + 8]
lea rcx, [r12 + r12*2]
xor edx, edx
mov byte [rax + rcx*8], Ordinal_79
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r13d
mov dword [rax + rcx*8 + 8], r14d
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], rdx
mov byte [rax + rcx*8 + 1], dl
inc ebx
add rbp, 4
cmp ebx, dword [r15 + 0x28]
jl 0x499810
mov rsi, qword [rsp + 0x40]
mov r15, qword [rsp + 0xb8]
mov r14d, dword [rsp + 0xa8]
mov rax, qword [rsp + 0xc0]
cmp dword [rsp + 0xe0], 0
jne 0x49a277
test r15, r15
jne 0x499b78
movzx eax, byte [rsi + 0x1f]
test al, al
jne 0x4998b4
inc dword [rsi + 0x54]
mov ebx, dword [rsi + 0x54]
jmp 0x4998c0
dec al
movzx eax, al
mov byte [rsi + 0x1f], al
mov ebx, dword [rsi + rax*4 + 0x24]
mov rax, qword [rsp + 0xc8]
mov r13d, dword [rsp + 0xd0]
movsxd rbp, dword [rdi + 0x3c]
mov eax, dword [rax]
lea r12d, [rax + r13 + 1]
mov rax, qword [rdi + 0x30]
cmp dword [rax + 0x60], ebp
jg 0x4998f5
mov edx, 1
mov rcx, rdi
call fcn.00441a80
test eax, eax
jne 0x499927
inc dword [rdi + 0x3c]
mov rax, qword [rdi + 8]
lea rcx, [rbp + rbp*2]
mov dword [rax + rcx*8 + 4], r12d
xor r12d, r12d
mov byte [rax + rcx*8], Ordinal_35
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 8], ebx
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], r12
mov byte [rax + rcx*8 + 1], r12b
jmp 0x49992a
xor r12d, r12d
mov rax, qword [rdi + 0x30]
movsxd rbp, dword [rdi + 0x3c]
cmp dword [rax + 0x60], ebp
jg 0x49994f
mov edx, 1
mov rcx, rdi
call fcn.00441a80
test eax, eax
je 0x49994f
mov ebp, 1
jmp 0x49997c
mov rax, qword [rdi + 8]
inc dword [rdi + 0x3c]
lea rcx, [rbp + rbp*2]
mov byte [rax + rcx*8], Ordinal_41
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], ebx
mov dword [rax + rcx*8 + 8], r12d
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], r12
mov byte [rax + rcx*8 + 1], 0
mov rax, qword [rsp + 0xc0]
mov r15, qword [rsp + 0xb0]
cmp r15, qword [rax]
jne 0x499a1c
cmp dword [rsp + 0xd8], 1
jne 0x499a26
mov rax, qword [rdi + 0x30]
movsxd r12, dword [rdi + 0x3c]
cmp dword [rax + 0x60], r12d
jg 0x4999c2
mov edx, 1
mov rcx, rdi
call fcn.00441a80
test eax, eax
jne 0x4999fc
mov rax, qword [rdi + 8]
inc dword [rdi + 0x3c]
lea rcx, [r12 + r12*2]
mov dword [rax + rcx*8 + 4], r13d
mov r13d, dword [rsp + 0xa0]
mov byte [rax + rcx*8], reloc.WLDAP32.dll_Ordinal_79
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 0xc], ebx
mov qword [rax + rcx*8 + 0x10], 0
mov dword [rax + rcx*8 + 8], r13d
mov byte [rax + rcx*8 + 1], 0
jmp 0x499a04
mov r13d, dword [rsp + 0xa0]
mov rdx, qword [rdi + 8]
test rdx, rdx
je 0x499a2e
movsxd rax, dword [rdi + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 0x90
jmp 0x499a2e
mov r13d, dword [rsp + 0xa0]
jmp 0x499a2e
mov r13d, dword [rsp + 0xa0]
mov r8d, r14d
mov r14d, dword [rsp + 0x30]
mov r9, r15
mov rcx, rsi
mov edx, r14d
mov dword [rsp + 0x20], getservbyname
call fcn.00490560
mov rax, qword [rdi + 0x30]
movsxd r12, dword [rdi + 0x3c]
cmp dword [rax + 0x60], r12d
jg 0x499a6b
mov edx, 1
mov rcx, rdi
call fcn.00441a80
test eax, eax
jne 0x499a9c
inc dword [rdi + 0x3c]
mov rax, qword [rdi + 8]
lea rcx, [r12 + r12*2]
xor r15d, r15d
mov byte [rax + rcx*8], 0x46
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r14d
mov dword [rax + rcx*8 + 0xc], ebx
mov dword [rax + rcx*8 + 8], r15d
mov qword [rax + rcx*8 + 0x10], r15
mov byte [rax + rcx*8 + 1], r15b
jmp 0x499a9f
xor r15d, r15d
mov rax, qword [rdi + 0x30]
movsxd r12, dword [rdi + 0x3c]
cmp dword [rax + 0x60], r12d
jg 0x499abe
mov edx, 1
mov rcx, rdi
call fcn.00441a80
test eax, eax
jne 0x499aeb
mov rax, qword [rdi + 8]
inc dword [rdi + 0x3c]
lea rcx, [r12 + r12*2]
mov byte [rax + rcx*8], reloc.WS2_32.dll_recv
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r15d
mov dword [rax + rcx*8 + 8], r13d
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], r15
mov byte [rax + rcx*8 + 1], 0
mov edx, dword [rdi + 0x3c]
lea eax, [rdx - 2]
cmp edx, eax
jbe 0x499b01
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
mov dword [rax + rcx*8 + 8], edx
mov ecx, dword [rdi + 0x3c]
mov rax, qword [rdi + 0x30]
dec ecx
mov dword [rax + 0x64], ecx
mov edx, dword [rdi + 0x3c]
cmp edx, ebp
jbe 0x499b22
mov eax, ebp
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
mov dword [rax + rcx*8 + 8], edx
mov ecx, dword [rdi + 0x3c]
mov rax, qword [rdi + 0x30]
dec ecx
test ebx, ebx
mov dword [rax + 0x64], ecx
je 0x49a283
movzx edx, byte [rsi + 0x1f]
cmp dl, 8
jae 0x49a283
mov ecx, r15d
lea rax, [rsi + 0x88]
nop
cmp dword [rax + 0xc], ebx
je 0x499b6f
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x499b50
movzx eax, dl
mov dword [rsi + rax*4 + 0x24], ebx
inc byte [rsi + 0x1f]
jmp 0x49a283
mov byte [rax + 6], 1
jmp 0x49a283
movsxd r13, dword [rax + 0x28]
mov ecx, dword [rsi + 0x44]
mov edx, dword [rsi + 0x48]
cmp r13d, ecx
mov dword [rsp + 0x34], r13d
mov dword [rsp + 0xe0], edx
jg 0x499ba2
lea eax, [rdx + r13]
sub ecx, r13d
mov dword [rsi + 0x48], eax
mov dword [rsi + 0x44], ecx
jmp 0x499bb5
mov eax, dword [rsi + 0x54]
lea ecx, [rax + 1]
add eax, r13d
mov dword [rsp + 0xe0], ecx
mov dword [rsi + 0x54], eax
movzx eax, byte [rsi + 0x1f]
test al, al
jne 0x499bc9
inc dword [rsi + 0x54]
mov eax, dword [rsi + 0x54]
mov dword [rsp + 0x38], eax
jmp 0x499bd9
dec al
movzx eax, al
mov byte [rsi + 0x1f], al
mov eax, dword [rsi + rax*4 + 0x24]
mov dword [rsp + 0x38], eax
mov rax, qword [rdi + 0x30]
movsxd rbx, dword [rdi + 0x3c]
mov ebp, dword [r15 + 0x58]
cmp dword [rax + 0x60], ebx
jg 0x499bfb
mov edx, 1
mov rcx, rdi
call fcn.00441a80
test eax, eax
jne 0x499c2e
mov rax, qword [rdi + 8]
inc dword [rdi + 0x3c]
mov edx, dword [rsp + 0x30]
lea rcx, [rbx + rbx*2]
mov byte [rax + rcx*8], getservbyname
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], ebp
mov dword [rax + rcx*8 + 0xc], r14d
mov qword [rax + rcx*8 + 0x10], 0
mov byte [rax + rcx*8 + 1], 0
mov rbp, qword [rsi + 0x10]
mov rdx, r15
mov rcx, rsi
call fcn.00481820
mov rbx, qword [rbp + 8]
mov rcx, qword [rbp]
test rbx, rbx
mov r12, rax
je 0x499ca0
cmp byte [rcx + 0x50], 0
jne 0x499ca0
mov edx, dword [rbp + 0x3c]
dec edx
movsxd rdx, edx
lea rbp, [rdx + rdx*2]
movsx edx, byte [rbx + rbp*8 + 1]
mov r8, qword [rbx + rbp*8 + 0x10]
call fcn.00441fd0
test r12, r12
mov qword [rbx + rbp*8 + 0x10], 0
jne 0x499c88
mov qword [rbx + rbp*8 + 0x10], r12
mov byte [rbx + rbp*8 + 1], r12b
jmp 0x499cad
mov qword [rbx + rbp*8 + 0x10], r12
mov byte [rbx + rbp*8 + 1], 0xfa
jmp 0x499cad
mov r8, rax
mov edx, 0xfffffffa
call fcn.00441fd0
xor ebx, ebx
test r13d, r13d
mov r14, r13
jle 0x499d48
mov ebp, dword [rsp + 0xe0]
mov esi, dword [rsp + 0xd0]
mov r15, qword [rsp + 0xc8]
mov eax, dword [r15 + rbx*4]
movsxd r12, dword [rdi + 0x3c]
lea r13d, [rax + rsi + 1]
mov rax, qword [rdi + 0x30]
cmp dword [rax + 0x60], r12d
jg 0x499cf9
mov edx, 1
mov rcx, rdi
call fcn.00441a80
test eax, eax
jne 0x499d2c
mov rax, qword [rdi + 8]
inc dword [rdi + 0x3c]
lea rcx, [r12 + r12*2]
mov byte [rax + rcx*8], reloc.WLDAP32.dll_Ordinal_33
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r13d
mov dword [rax + rcx*8 + 8], ebp
mov dword [rax + rcx*8 + 0xc], 0
mov qword [rax + rcx*8 + 0x10], 0
mov byte [rax + rcx*8 + 1], 0
inc rbx
inc ebp
cmp rbx, r14
jl 0x499cd1
mov rsi, qword [rsp + 0x40]
mov r15, qword [rsp + 0xb8]
mov r13d, dword [rsp + 0x34]
mov rax, qword [rsp + 0xc0]
mov r8, qword [rsp + 0xb0]
cmp r8, qword [rax]
jne 0x499e95
cmp dword [rsp + 0xd8], 1
jne 0x499e95
mov eax, dword [rdi + 0x3c]
xor ebx, ebx
test r13d, r13d
lea eax, [rax + r13 + 1]
jle 0x499e38
mov esi, eax
nop
nop
nop
mov edx, dword [rsp + 0xd0]
mov rax, qword [rsp + 0xc8]
movsxd r12, dword [rdi + 0x3c]
mov eax, dword [rax + rbx*4]
lea r13d, [rax + rdx + 1]
mov rax, qword [r15 + 8]
movsx ecx, word [rax + rbx*2]
mov rax, qword [rdi + 0x30]
cmp cx, word [r8 + 0x40]
lea ebp, [rcx + rdx + 1]
cmove ebp, edx
cmp dword [rax + 0x60], r12d
jg 0x499dda
mov edx, 1
mov rcx, rdi
call fcn.00441a80
test eax, eax
jne 0x499e09
mov rax, qword [rdi + 8]
inc dword [rdi + 0x3c]
lea rcx, [r12 + r12*2]
mov byte [rax + rcx*8], Ordinal_79
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r13d
mov dword [rax + rcx*8 + 8], esi
mov dword [rax + rcx*8 + 0xc], ebp
mov qword [rax + rcx*8 + 0x10], 0
mov byte [rax + rcx*8 + 1], 0
mov rdx, qword [rdi + 8]
test rdx, rdx
je 0x499e1f
movsxd rax, dword [rdi + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 0x10
mov r8, qword [rsp + 0xb0]
inc rbx
cmp rbx, r14
jl 0x499d90
mov rsi, qword [rsp + 0x40]
mov rax, qword [rdi + 0x30]
movsxd rbx, dword [rdi + 0x3c]
cmp dword [rax + 0x60], ebx
jg 0x499e56
mov edx, 1
mov rcx, rdi
call fcn.00441a80
test eax, eax
jne 0x499e95
mov rax, qword [rdi + 8]
inc dword [rdi + 0x3c]
mov r13d, dword [rsp + 0xa0]
lea rcx, [rbx + rbx*2]
mov byte [rax + rcx*8], reloc.WS2_32.dll_recv
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], 0
mov dword [rax + rcx*8 + 8], r13d
mov dword [rax + rcx*8 + 0xc], 0
mov qword [rax + rcx*8 + 0x10], 0
mov byte [rax + rcx*8 + 1], 0
cmp qword [r15 + 0x20], 0
jne 0x499f7c
movzx eax, word [r15 + 0x60]
mov r12, qword [r15 + 0x18]
mov rbp, qword [rdi]
inc eax
movsxd rbx, eax
je 0x499f06
cmp rbx, 0x7fffff00
jae 0x499f06
cmp dword [reloc.WS2_32.dll_accept], 0
je 0x499efc
mov rcx, qword [0x00772b88]
test rcx, rcx
je 0x499ed7
call qword [0x0072d0f8]
lea rdx, [rsp + 0x40]
mov ecx, ebx
call fcn.0043a720
mov rcx, qword [0x00772b88]
test rcx, rcx
je 0x499f0a
call qword [0x0072d108]
mov rax, qword [rsp + 0x40]
jmp 0x499f0f
mov ecx, ebx
call qword [0x0072d098]
jmp 0x499f0f
xor eax, eax
jmp 0x499f0f
mov rax, qword [rsp + 0x40]
test rax, rax
mov qword [r15 + 0x20], rax
jne 0x499f21
mov byte [rbp + 0x50], 1
xor r13d, r13d
jmp 0x499f80
xor edx, edx
xor r8d, r8d
cmp word [r15 + 0x60], dx
jbe 0x499f71
nop
mov rax, qword [r15 + 8]
movzx ecx, word [rax + rdx*2]
test cx, cx
jns 0x499f44
mov ecx, 0x44
jmp 0x499f59
movsx rax, cx
lea rcx, [rax + rax*2]
mov rax, qword [r12 + 8]
add rcx, rcx
movsx ecx, byte [rax + rcx*8 + 0x29]
mov rax, qword [r15 + 0x20]
inc r8d
inc rdx
mov byte [rdx + rax - 1], cl
movzx eax, word [r15 + 0x60]
cmp r8d, eax
jl 0x499f30
mov rax, qword [r15 + 0x20]
movsxd rcx, r8d
mov byte [rcx + rax], 0
mov r13, qword [r15 + 0x20]
mov rax, qword [rdi + 0x30]
movsxd r12, dword [rdi + 0x3c]
cmp dword [rax + 0x60], r12d
jg 0x499fb1
mov edx, 1
mov rcx, rdi
call fcn.00441a80
test eax, eax
je 0x499fb1
mov r14d, dword [rsp + 0x34]
mov r15d, dword [rsp + 0x38]
mov r12d, 1
jmp 0x499ff2
mov rax, qword [rdi + 8]
inc dword [rdi + 0x3c]
mov edx, dword [rsp + 0xe0]
mov r14d, dword [rsp + 0x34]
mov r15d, dword [rsp + 0x38]
lea rcx, [r12 + r12*2]
mov byte [rax + rcx*8], gethostbyaddr
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], r14d
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], 0
mov byte [rax + rcx*8 + 1], 0
mov rbp, qword [rdi + 8]
mov rcx, qword [rdi]
mov ebx, r14d
test rbp, rbp
je 0x49a0fd
cmp byte [rcx + 0x50], 0
jne 0x49a0fd
test r12d, r12d
jns 0x49a01b
mov r12d, dword [rdi + 0x3c]
dec r12d
movsxd rax, r12d
lea r12, [rax + rax*2]
movsx edx, byte [rbp + r12*8 + 1]
mov r8, qword [rbp + r12*8 + 0x10]
call fcn.00441fd0
cmp r14d, 0xfffffff2
mov qword [rbp + r12*8 + 0x10], 0
jne 0x49a050
mov dword [rbp + r12*8 + 0x10], r13d
mov byte [rbp + r12*8 + 1], r14b
jmp 0x49a10e
test r13, r13
jne 0x49a064
mov qword [rbp + r12*8 + 0x10], r13
mov byte [rbp + r12*8 + 1], r13b
jmp 0x49a10e
cmp r14d, 0xfffffffa
jne 0x49a079
mov qword [rbp + r12*8 + 0x10], r13
mov byte [rbp + r12*8 + 1], r14b
jmp 0x49a10e
cmp r14d, 0xfffffff6
jne 0x49a08f
mov qword [rbp + r12*8 + 0x10], r13
mov byte [rbp + r12*8 + 1], r14b
inc dword [r13 + 0x18]
jmp 0x49a10e
test r14d, r14d
jns 0x49a0a0
mov qword [rbp + r12*8 + 0x10], r13
mov byte [rbp + r12*8 + 1], r14b
jmp 0x49a10e
test r14d, r14d
jne 0x49a0c1
cmp byte [r13], r14b
mov rbx, r13
je 0x49a0b8
nop
inc rbx
cmp byte [rbx], 0
jne 0x49a0b0
sub ebx, r13d
and ebx, 0x3fffffff
mov rcx, qword [rdi]
movsxd r14, ebx
lea rdx, [r14 + 1]
call fcn.0043b030
test rax, rax
mov rbx, rax
je 0x49a0eb
mov r8, r14
mov rdx, r13
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov byte [rbx + r14], 0
mov r14d, dword [rsp + 0x34]
mov qword [rbp + r12*8 + 0x10], rbx
mov byte [rbp + r12*8 + 1], 0xff
jmp 0x49a10e
cmp r14d, 0xfffffff6
je 0x49a10e
mov r8, r13
mov edx, r14d
call fcn.00441fd0
mov rax, qword [rdi + 0x30]
movsxd rbx, dword [rdi + 0x3c]
cmp dword [rax + 0x60], ebx
jg 0x49a133
mov edx, 1
mov rcx, rdi
call fcn.00441a80
test eax, eax
je 0x49a133
mov ebx, 1
jmp 0x49a16d
mov rax, qword [rdi + 8]
inc dword [rdi + 0x3c]
mov edx, dword [rsp + 0x30]
lea rcx, [rbx + rbx*2]
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rsp + 0xa0]
mov byte [rax + rcx*8], 0x45
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], 0
mov dword [rax + rcx*8 + 8], edx
mov byte [rax + rcx*8 + 1], 0
mov rbp, qword [rdi + 8]
mov rcx, qword [rdi]
test rbp, rbp
je 0x49a1c0
cmp byte [rcx + 0x50], 0
jne 0x49a1c0
test ebx, ebx
jns 0x49a188
mov ebx, dword [rdi + 0x3c]
dec ebx
movsxd rax, ebx
lea rbx, [rax + rax*2]
movsx edx, byte [rbp + rbx*8 + 1]
mov r8, qword [rbp + rbx*8 + 0x10]
call fcn.00441fd0
mov qword [rbp + rbx*8 + 0x10], 0
mov dword [rbp + rbx*8 + 0x10], 0
mov byte [rbp + rbx*8 + 1], 0xf2
jmp 0x49a1cc
xor r8d, r8d
lea edx, [r8 - 0xe]
call fcn.00441fd0
test r15d, r15d
je 0x49a203
movzx edx, byte [rsi + 0x1f]
cmp dl, 8
jae 0x49a203
xor ecx, ecx
lea rax, [rsi + 0x88]
cmp dword [rax + 0xc], r15d
je 0x49a271
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x49a1e3
movzx eax, dl
mov dword [rsi + rax*4 + 0x24], r15d
inc byte [rsi + 0x1f]
mov eax, dword [rsp + 0xe0]
lea rcx, [rsi + 0x94]
mov r8d, 0xa
lea r9d, [rax + r14 - 1]
nop
mov edx, dword [rcx]
cmp edx, eax
jl 0x49a254
cmp edx, r9d
jg 0x49a254
cmp byte [rcx - 6], 0
je 0x49a24e
movzx eax, byte [rsi + 0x1f]
cmp al, 8
jae 0x49a243
movzx eax, al
mov dword [rsi + rax*4 + 0x24], edx
inc byte [rsi + 0x1f]
mov eax, dword [rsp + 0xe0]
mov byte [rcx - 6], 0
mov dword [rcx], 0
add rcx, 0x14
dec r8
jne 0x49a220
cmp r14d, dword [rsi + 0x44]
jle 0x49a27e
mov dword [rsi + 0x44], r14d
mov r14d, dword [rsp + 0x30]
mov dword [rsi + 0x48], eax
jmp 0x49a283
mov byte [rax + 6], 1
jmp 0x49a203
mov r14d, dword [rsp + 0x30]
jmp 0x49a283
mov r14d, dword [rsp + 0x30]
mov rcx, qword [rsp + 0xc0]
mov r15, qword [rsp + 0x58]
mov r13, qword [rsp + 0x68]
movzx edx, byte [rcx + 0x2c]
test dl, dl
jne 0x49a42d
mov rax, qword [rsi]
bt dword [rax + 0x2c], 0x18
jb 0x49a42d
mov rcx, qword [rsi + 0x1c0]
test rcx, rcx
jne 0x49a425
cmp byte [rsi + 0x20], cl
jne 0x49a41b
mov rbp, qword [rsi + 0x10]
test rbp, rbp
jne 0x49a347
mov rcx, rsi
call fcn.0044f4c0
test rax, rax
mov rbp, rax
mov qword [rsi + 0x10], rax
je 0x49a32e
mov rcx, qword [rax + 0x30]
movsxd rbx, dword [rax + 0x3c]
cmp dword [rcx + 0x60], ebx
jg 0x49a303
mov edx, 1
mov rcx, rax
call fcn.00441a80
test eax, eax
jne 0x49a32e
inc dword [rbp + 0x3c]
mov rax, qword [rbp + 8]
lea rcx, [rbx + rbx*2]
xor edx, edx
mov byte [rax + rcx*8], 0x99
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], rdx
mov byte [rax + rcx*8 + 1], dl
mov rcx, qword [rsi + 0x1c0]
test rcx, rcx
jne 0x49a347
mov rax, qword [rsi]
test byte [rax + 0x4c], 8
jne 0x49a347
mov byte [rsi + 0x23], 1
test rcx, rcx
cmovne rsi, rcx
mov byte [rsi + 0x21], 1
mov rax, qword [rbp + 0x30]
movsxd rbx, dword [rbp + 0x3c]
cmp dword [rax + 0x60], ebx
jg 0x49a37a
mov edx, 1
mov rcx, rbp
call fcn.00441a80
test eax, eax
je 0x49a37a
mov ebx, 1
xor r12d, r12d
jmp 0x49a3b0
inc dword [rbp + 0x3c]
mov rax, qword [rbp + 8]
lea rcx, [rbx + rbx*2]
xor r12d, r12d
mov byte [rax + rcx*8], Ordinal_27
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], 0x313
mov dword [rax + rcx*8 + 8], 2
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], r12
mov byte [rax + rcx*8 + 1], r12b
mov rsi, qword [rbp + 8]
mov rcx, qword [rbp]
test rsi, rsi
je 0x49a3ee
cmp byte [rcx + 0x50], 0
jne 0x49a3ee
test ebx, ebx
jns 0x49a3cc
mov ebx, dword [rbp + 0x3c]
dec ebx
movsxd rax, ebx
lea rbx, [rax + rax*2]
movsx edx, byte [rsi + rbx*8 + 1]
mov r8, qword [rsi + rbx*8 + 0x10]
call fcn.00441fd0
mov qword [rsi + rbx*8 + 0x10], r12
mov byte [rsi + rbx*8 + 1], 0
jmp 0x49a3fa
xor r8d, r8d
lea edx, [r8 - 2]
call fcn.00441fd0
mov rdx, qword [rbp + 8]
test rdx, rdx
je 0x49a49e
movsxd rax, dword [rbp + 0x3c]
xor esi, esi
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 4
jmp 0x49a4a4
mov rcx, qword [rsp + 0xc0]
jmp 0x49a42d
mov rcx, qword [rsp + 0xc0]
mov ebp, dword [rsp + 0xd8]
test ebp, ebp
jle 0x49a44e
test dl, dl
jne 0x49a44e
mov rax, qword [rsi + 0x1c0]
test rax, rax
cmovne rsi, rax
mov byte [rsi + 0x21], 1
mov rax, qword [rdi + 0x30]
movsxd rbx, dword [rdi + 0x3c]
movzx esi, byte [rcx + 0x2c]
cmp dword [rax + 0x60], ebx
jg 0x49a470
mov edx, 1
mov rcx, rdi
call fcn.00441a80
test eax, eax
jne 0x49a4a2
inc dword [rdi + 0x3c]
mov rax, qword [rdi + 8]
lea rcx, [rbx + rbx*2]
mov dword [rax + rcx*8 + 4], esi
xor esi, esi
mov byte [rax + rcx*8], 0x86
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 8], ebp
mov dword [rax + rcx*8 + 0xc], esi
mov qword [rax + rcx*8 + 0x10], rsi
mov byte [rax + rcx*8 + 1], sil
jmp 0x49a4a4
xor esi, esi
jmp 0x49a4a4
xor esi, esi
mov r9, qword [rdi + 0x30]
mov r12, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x88]
mov eax, 0xffffffff
sub eax, dword [rsp + 0xa0]
js 0x49a4d9
mov r8, qword [r9 + 0x80]
test r8, r8
je 0x49a4d9
movsxd rcx, eax
mov eax, dword [rdi + 0x3c]
mov dword [r8 + rcx*4], eax
mov eax, dword [rdi + 0x3c]
dec eax
mov dword [r9 + 0x64], eax
mov rax, qword [rdi + 0x30]
movsxd rbx, dword [rdi + 0x3c]
cmp dword [rax + 0x60], ebx
jg 0x49a500
mov edx, 1
mov rcx, rdi
call fcn.00441a80
test eax, eax
jne 0x49a52b
mov rax, qword [rdi + 8]
inc dword [rdi + 0x3c]
lea rcx, [rbx + rbx*2]
mov byte [rax + rcx*8], 0x3d
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r14d
mov dword [rax + rcx*8 + 8], esi
mov dword [rax + rcx*8 + 0xc], esi
mov qword [rax + rcx*8 + 0x10], rsi
mov byte [rax + rcx*8 + 1], 0
mov r14, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x90]
add rsp, 0x98
ret