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

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
mov r11, rsp
sub rsp, 0xd8
mov rax, qword [rcx + 0x10]
mov qword [r11 - 0x10], rbp
mov qword [r11 - 0x18], rsi
mov rsi, qword [rcx]
mov qword [r11 - 0x20], rdi
mov qword [r11 - 0x30], r13
mov qword [rsp + 0x30], rax
xor eax, eax
mov rbp, r8
xor r8d, r8d
test r9, r9
mov qword [r11 - 0x40], r15
mov qword [r11 - 0x78], rax
mov qword [r11 - 0x70], rax
mov qword [r11 - 0x68], rax
mov qword [r11 - 0x60], rax
mov qword [r11 - 0x58], rax
mov rdi, r9
mov r15, rdx
mov r13, rcx
mov qword [rsp + 0x48], rsi
je 0x4a883b
cmp dword [r9], 0x40
cmovge rdi, r8
mov qword [rsp + 0x70], rdi
test byte [rsi + 0x4c], 0x20
je 0x4a885d
movzx ecx, word [rsp + 0x108]
and cx, 0xfbff
mov word [rsp + 0xf8], cx
jmp 0x4a886d
mov cx, word [rsp + 0x108]
mov word [rsp + 0xf8], cx
mov eax, dword [rdx]
cmp eax, 0x40
jle 0x4a8890
lea rdx, str.at_most__d_tables_in_a_join
mov r8d, 0x40
mov rcx, r13
call fcn.00462100
xor eax, eax
jmp 0x4a94a4
and cx, 0x40
mov qword [rsp + 0xd0], rbx
mov qword [rsp + 0xb0], r12
mov word [rsp + 0x38], cx
mov ecx, 1
mov qword [rsp + 0xa0], r14
cmovne eax, ecx
mov rcx, rsi
mov dword [rsp + 0x3c], eax
lea eax, [rax + rax*4]
shl eax, 4
add eax, 0x347
and eax, 0xfffffff8
movsxd r12, eax
lea rdx, [r12 + 0x60]
call fcn.0043b030
test rax, rax
mov r14, rax
je 0x4a88f2
lea r8, [r12 + 0x60]
xor edx, edx
mov rcx, rax
call sub.msvcrt.dll_memset
cmp byte [rsi + 0x50], 0
je 0x4a8908
mov rdx, r14
mov rcx, rsi
call fcn.00425ea0
jmp 0x4a948a
mov eax, dword [rsp + 0x3c]
mov rbx, qword [rsp + 0x30]
mov qword [r14], r13
mov r13, qword [rsp + 0x100]
mov byte [r14 + 0x39], al
mov rdx, 0xffffffffffffffff
mov dword [r14 + 0x50], edx
mov dword [r14 + 0x4c], edx
mov qword [r14 + 8], r15
mov qword [r14 + 0x18], r13
mov qword [r14 + 0x10], rdi
mov rbx, qword [rbx + 0x30]
movsxd rsi, dword [rbx + 0x78]
mov qword [rsp + 0x58], rdx
lea eax, [rsi + 1]
mov dword [rbx + 0x78], eax
lea eax, [rsi - 1]
test esi, eax
jne 0x4a897d
mov rdx, qword [rbx + 0x80]
mov rcx, qword [rbx]
lea eax, [rsi + rsi + 1]
movsxd r8, eax
shl r8, 2
call fcn.0043b230
mov rdx, 0xffffffffffffffff
mov qword [rbx + 0x80], rax
mov rcx, qword [rbx + 0x80]
test rcx, rcx
je 0x4a898c
mov dword [rcx + rsi*4], edx
lea rcx, [r14 + r12]
xor r12d, r12d
mov eax, edx
sub eax, esi
test rbp, rbp
lea rsi, [r14 + 0x158]
mov dword [r14 + 0x40], eax
mov dword [r14 + 0x44], eax
mov ax, word [rsp + 0xf8]
mov word [r14 + 0x32], ax
mov rax, qword [rsp + 0xe0]
lea rbx, [r14 + 0x54]
mov eax, dword [rax + 0x1d8]
mov dword [r14 + 0x48], eax
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x78], rcx
mov word [rcx + 0x2c], 0
mov word [rcx + 0x2e], 4
mov dword [rcx + 0x28], r12d
lea rax, [rcx + 0x40]
mov qword [rcx + 0x30], rax
mov dword [rbx], r12d
lea rax, [rsi + 0x28]
mov qword [rsi], r14
mov qword [rsi + 8], r12
mov dword [rsi + 0x14], r12d
mov qword [rsi + 0x20], rax
mov dword [rsi + 0x18], 8
mov byte [rsi + 0x10], 0x48
je 0x4a8a4a
cmp byte [rbp], 0x48
je 0x4a8a2c
xor r8d, r8d
mov rdx, rbp
mov rcx, rsi
call fcn.0044b3f0
jmp 0x4a8a4a
mov rdx, qword [rbp + 0x10]
mov r8b, 0x48
mov rcx, rsi
call fcn.0044b670
mov rdx, qword [rbp + 0x18]
mov r8b, 0x48
mov rcx, rsi
call fcn.0044b670
mov rax, qword [rsp + 0x68]
mov esi, r12d
cmp dword [rax + 0x14], r12d
jle 0x4a8aca
mov r13, qword [rsp + 0xe0]
mov ebp, dword [rsp + 0x3c]
mov rbx, r12
test ebp, ebp
je 0x4a8a86
mov rax, qword [rax + 0x20]
mov edx, 2
mov rcx, qword [rbx + rax]
call fcn.00445cb0
test eax, eax
je 0x4a8aae
mov rax, qword [rsp + 0x68]
mov rdx, qword [rax + 0x20]
mov r8d, dword [r14 + 0x44]
mov r9d, reloc.WS2_32.dll_recv
mov rdx, qword [rdx + rbx]
mov rcx, r13
call fcn.004d3740
mov r11, qword [rsp + 0x68]
mov rax, qword [r11 + 0x20]
or byte [rax + rbx + 0x1c], 4
mov rax, qword [rsp + 0x68]
inc esi
add rbx, 0x38
cmp esi, dword [rax + 0x14]
jl 0x4a8a67
mov r13, qword [rsp + 0x100]
lea rbx, [r14 + 0x54]
cmp dword [rsp + 0x3c], r12d
jne 0x4a8af3
test rdi, rdi
je 0x4a8add
movzx eax, byte [rdi]
mov byte [r14 + 0x34], al
mov si, word [rsp + 0xf8]
bt si, 0xa
jae 0x4a8afb
mov byte [r14 + 0x38], 1
jmp 0x4a8afb
mov si, word [rsp + 0xf8]
cmp dword [r15], r12d
mov r8d, r12d
jle 0x4a8b27
lea rdx, [r15 + 0x50]
nop
nop
nop
mov eax, dword [rdx]
movsxd rcx, dword [rbx]
inc r8d
mov dword [rbx + rcx*4 + 4], eax
inc dword [rbx]
add rdx, 0x78
cmp r8d, dword [r15]
jl 0x4a8b10
lea rax, [r14 + 0x158]
mov ebx, dword [rax + 0x14]
dec ebx
js 0x4a8b65
nop
nop
nop
lea rdx, [r14 + 0x158]
mov r8d, ebx
mov rcx, r15
call fcn.00486290
dec ebx
jns 0x4a8b40
mov r13, qword [rsp + 0x100]
lea rax, [r14 + 0x158]
mov r10, qword [rsp + 0x48]
cmp byte [r10 + 0x50], r12b
jne 0x4a946d
and si, 0x400
je 0x4a8bb1
mov rbp, qword [rsp + 0xe0]
mov r9, r13
mov r8, rax
mov rcx, rbp
mov rdx, r15
call fcn.00486f00
test eax, eax
je 0x4a8b9f
mov byte [r14 + 0x38], 1
jmp 0x4a8bb9
test rdi, rdi
jne 0x4a8bb9
or word [r14 + 0x32], 0x200
mov qword [r14 + 0x10], r13
jmp 0x4a8bb9
mov rbp, qword [rsp + 0xe0]
mov r15d, dword [rsp + 0x3c]
cmp r15d, 1
jne 0x4a8bd2
lea rcx, [rsp + 0x60]
call fcn.0048a420
test eax, eax
jne 0x4a8c24
lea rcx, [rsp + 0x60]
call fcn.004889d0
test eax, eax
jne 0x4a9468
xor edx, edx
mov rcx, r14
call fcn.00489860
mov r10, qword [rsp + 0x48]
cmp byte [r10 + 0x50], r12b
jne 0x4a946d
cmp qword [r14 + 0x10], r12
je 0x4a8c29
movzx edx, word [r14 + 0x30]
mov rcx, r14
inc dx
call fcn.00489860
mov r10, qword [rsp + 0x48]
cmp byte [r10 + 0x50], r12b
jne 0x4a946d
jmp 0x4a8c29
mov r10, qword [rsp + 0x48]
cmp qword [r14 + 0x10], r12
jne 0x4a8c3f
bt dword [r10 + 0x2c], 0x11
jae 0x4a8c3f
mov qword [r14 + 0x28], 0xffffffffffffffff
cmp dword [rbp + 0x4c], r12d
jne 0x4a946d
cmp byte [r10 + 0x50], r12b
jne 0x4a946d
cmp byte [r14 + 0x39], 2
jb 0x4a8d48
test r13, r13
je 0x4a8d48
bt word [r10 + 0x4c], 0xa
jb 0x4a8d48
lea rcx, [r14 + 0x54]
mov rdx, r13
call fcn.0044b7d0
mov rdx, qword [rsp + 0x70]
test rdx, rdx
mov rbx, rax
je 0x4a8c99
lea rcx, [r14 + 0x54]
call fcn.0044b7d0
or rbx, rax
cmp byte [r14 + 0x39], 2
jb 0x4a8d43
mov r10, qword [r14 + 8]
nop
nop
movzx r9d, byte [r14 + 0x39]
lea rax, [r9 + r9*4]
add rax, rax
mov r8, qword [r14 + rax*8 + 0x330]
movzx eax, byte [r8 + 0x10]
imul rax, rax, 0x78
test byte [rax + r10 + 0x44], 8
je 0x4a8d37
test si, si
jne 0x4a8ce2
bt dword [r8 + 0x28], 0xc
jae 0x4a8d37
mov r8, qword [r8 + 8]
test rbx, r8
jne 0x4a8d37
mov rax, qword [rsp + 0x68]
mov rcx, qword [rax + 0x20]
movsxd rdx, dword [rax + 0x14]
imul rdx, rdx, 0x38
add rdx, rcx
cmp rcx, rdx
jae 0x4a8d23
test qword [rcx + 0x30], r8
je 0x4a8d13
mov rax, qword [rcx]
test byte [rax + 4], 1
je 0x4a8d1e
add rcx, 0x38
cmp rcx, rdx
jb 0x4a8d04
jmp 0x4a8d23
cmp rcx, rdx
jb 0x4a8d37
dec r9b
dec r15d
cmp r9b, 2
mov byte [r14 + 0x39], r9b
jae 0x4a8cb0
mov r10, qword [rsp + 0x48]
mov dword [rsp + 0x3c], r15d
jmp 0x4a8d48
mov r10, qword [rsp + 0x48]
mov rcx, qword [r14]
movsx eax, word [r14 + 0x30]
mov r11w, word [rsp + 0xf8]
add dword [rcx + 0x1d8], eax
test r11b, 4
je 0x4a8d90
mov rcx, qword [r14 + 0x380]
bt dword [rcx + 0x28], 0xc
jae 0x4a8d9a
mov rdi, qword [rsp + 0xe8]
mov byte [r14 + 0x36], 1
mov rax, qword [rdi + 0x28]
test byte [rax + 0x48], 0x20
jne 0x4a8da2
and dword [rcx + 0x28], 0xffffffbf
jmp 0x4a8da2
mov rdi, qword [rsp + 0xe8]
jmp 0x4a8da2
mov rdi, qword [rsp + 0xe8]
test r15d, r15d
jle 0x4a93a0
mov r9d, dword [rsp + 0x110]
lea r8, [r14 + 0x380]
mov eax, r15d
mov qword [rsp + 0x40], r8
mov qword [rsp + 0x88], rax
nop
nop
movzx esi, byte [r8 - 0x1c]
mov r13d, 0xfff0bdc0
mov r15, 0xfffffffffff0bdc0
imul rsi, rsi, 0x78
mov qword [rsp + 0x50], rsi
mov rbp, qword [rsi + rdi + 0x28]
mov rdx, qword [rbp + 0x70]
test rdx, rdx
je 0x4a8e24
mov ecx, dword [r10 + 0x28]
mov r13d, r12d
mov r15, r12
test ecx, ecx
jle 0x4a8e24
mov rax, qword [r10 + 0x20]
add rax, 0x18
nop
cmp qword [rax], rdx
je 0x4a8e24
inc r13d
inc r15
add rax, 0x20
cmp r13d, ecx
jl 0x4a8e10
movzx ecx, byte [rbp + 0x48]
mov r12, qword [r8]
test cl, 2
jne 0x4a9118
cmp qword [rbp + 0x18], 0
jne 0x4a9111
mov eax, dword [r12 + 0x28]
bt eax, 0xa
jae 0x4a8f75
mov rbx, qword [rbp + 0x60]
test rbx, rbx
je 0x4a8e65
cmp qword [rbx], r10
je 0x4a8e65
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x4a8e57
mov r10, qword [rsp + 0x30]
mov esi, dword [rsi + rdi + 0x50]
mov rax, qword [r10 + 0x30]
movsxd rdi, dword [r10 + 0x3c]
cmp dword [rax + 0x60], edi
jg 0x4a8e9d
mov edx, 1
mov rcx, r10
call fcn.00441a80
test eax, eax
je 0x4a8e98
mov r10, qword [rsp + 0x30]
mov edi, 1
jmp 0x4a8ecd
mov r10, qword [rsp + 0x30]
inc dword [r10 + 0x3c]
mov rax, qword [r10 + 8]
lea rcx, [rdi + rdi*2]
xor r8d, r8d
mov byte [rax + rcx*8], DllRegisterServer
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], esi
mov dword [rax + rcx*8 + 8], r8d
mov dword [rax + rcx*8 + 0xc], r8d
mov qword [rax + rcx*8 + 0x10], r8
mov byte [rax + rcx*8 + 1], r8b
mov rsi, qword [r10 + 8]
mov rcx, qword [r10]
test rsi, rsi
je 0x4a9096
cmp byte [rcx + 0x50], 0
jne 0x4a9076
test edi, edi
jns 0x4a8ef1
mov edi, dword [r10 + 0x3c]
dec edi
movsxd rax, edi
lea rdi, [rax + rax*2]
movsx edx, byte [rsi + rdi*8 + 1]
mov r8, qword [rsi + rdi*8 + 0x10]
call fcn.00441fd0
test rbx, rbx
mov qword [rsi + rdi*8 + 0x10], 0
jne 0x4a8f43
mov r8, qword [rsp + 0x40]
mov r9d, dword [rsp + 0x110]
mov r10, qword [rsp + 0x30]
mov r11w, word [rsp + 0xf8]
mov qword [rsi + rdi*8 + 0x10], rbx
mov byte [rsi + rdi*8 + 1], bl
mov rsi, qword [rsp + 0x50]
jmp 0x4a911d
mov r8, qword [rsp + 0x40]
mov r9d, dword [rsp + 0x110]
mov r10, qword [rsp + 0x30]
mov r11w, word [rsp + 0xf8]
mov qword [rsi + rdi*8 + 0x10], rbx
mov byte [rsi + rdi*8 + 1], 0xf6
inc dword [rbx + 0x18]
mov rsi, qword [rsp + 0x50]
jmp 0x4a911d
test cl, 0x10
jne 0x4a910a
test al, 0x40
jne 0x4a9036
test r11b, 0x10
jne 0x4a9036
cmp byte [r14 + 0x36], 0
mov ecx, getservbyname
je 0x4a8fa9
mov eax, dword [rsi + rdi + 0x50]
mov ecx, reloc.WS2_32.dll_getservbyname
mov dword [r14 + 0x4c], eax
mov edx, dword [rsi + rdi + 0x50]
mov dword [rsp + 0x20], ecx
mov rcx, qword [rsp + 0xe0]
mov r9, rbp
mov r8d, r13d
call fcn.00490560
cmp byte [r14 + 0x36], 0
jne 0x4a90b3
cmp word [rbp + 0x42], 0x40
jge 0x4a90d0
test byte [rbp + 0x48], 0x20
jne 0x4a90ed
mov rax, qword [rsi + rdi + 0x68]
xor r8d, r8d
test rax, rax
mov ecx, r8d
je 0x4a8ffb
inc ecx
shr rax, 1
jne 0x4a8ff4
mov rax, qword [rsp + 0x30]
movsxd r8, ecx
mov r9d, 0xfffffff2
mov edx, dword [rax + 0x3c]
mov rcx, rax
dec edx
call fcn.004423e0
mov r8, qword [rsp + 0x40]
mov r9d, dword [rsp + 0x110]
mov r10, qword [rsp + 0x30]
mov r11w, word [rsp + 0xf8]
jmp 0x4a911d
mov rax, qword [rbp]
mov r8d, dword [rbp + 0x3c]
mov rcx, qword [rsp + 0xe0]
xor r9d, r9d
mov edx, r13d
mov qword [rsp + 0x20], rax
call fcn.00446990
mov r8, qword [rsp + 0x40]
mov r9d, dword [rsp + 0x110]
mov r10, qword [rsp + 0x30]
mov r11w, word [rsp + 0xf8]
jmp 0x4a911d
mov rsi, qword [rsp + 0x50]
mov r8, qword [rsp + 0x40]
mov r9d, dword [rsp + 0x110]
mov r11w, word [rsp + 0xf8]
jmp 0x4a911d
mov rsi, qword [rsp + 0x50]
mov r8, qword [rsp + 0x40]
mov r9d, dword [rsp + 0x110]
mov r11w, word [rsp + 0xf8]
jmp 0x4a911d
mov r8, qword [rsp + 0x40]
mov r9d, dword [rsp + 0x110]
mov r10, qword [rsp + 0x30]
mov r11w, word [rsp + 0xf8]
jmp 0x4a911d
mov r8, qword [rsp + 0x40]
mov r9d, dword [rsp + 0x110]
mov r10, qword [rsp + 0x30]
mov r11w, word [rsp + 0xf8]
jmp 0x4a911d
mov r8, qword [rsp + 0x40]
mov r9d, dword [rsp + 0x110]
mov r10, qword [rsp + 0x30]
mov r11w, word [rsp + 0xf8]
jmp 0x4a911d
mov r10, qword [rsp + 0x30]
jmp 0x4a911d
mov r10, qword [rsp + 0x30]
jmp 0x4a911d
mov r10, qword [rsp + 0x30]
bt dword [r12 + 0x28], 9
jae 0x4a92b2
test byte [rbp + 0x48], 0x20
mov r12, qword [r12 + 0x20]
mov edi, getservbyname
je 0x4a915e
mov eax, dword [r12 + 0x64]
and al, 3
cmp al, 2
jne 0x4a9157
movzx eax, word [rsp + 0x38]
test ax, ax
je 0x4a9163
mov ebx, dword [r8 - 0x3c]
xor edi, edi
jmp 0x4a91cb
mov ax, word [rsp + 0x38]
jmp 0x4a9163
mov ax, word [rsp + 0x38]
cmp byte [r14 + 0x36], 0
je 0x4a919e
mov rax, qword [rsp + 0xe8]
mov ebx, r9d
mov rax, qword [rsi + rax + 0x28]
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x4a9193
cmp rcx, r12
je 0x4a9193
mov rcx, qword [rcx + 0x28]
inc ebx
test rcx, rcx
jne 0x4a9183
mov edi, reloc.WS2_32.dll_getservbyname
mov dword [r14 + 0x50], ebx
jmp 0x4a91cb
test r9d, r9d
je 0x4a91ba
test ax, ax
je 0x4a91ba
bt r11w, 0xc
mov ebx, r9d
jae 0x4a91cb
mov edi, getservbyname
jmp 0x4a91cb
mov rcx, qword [rsp + 0xe0]
mov ebx, dword [rcx + 0x50]
lea eax, [rbx + 1]
mov dword [rcx + 0x50], eax
test edi, edi
mov dword [r8 - 0x38], ebx
je 0x4a92bf
mov rax, qword [r10 + 0x30]
movsxd rsi, dword [r10 + 0x3c]
mov ebp, dword [r12 + 0x58]
cmp dword [rax + 0x60], esi
jg 0x4a91ff
mov edx, 1
mov rcx, r10
call fcn.00441a80
test eax, eax
jne 0x4a922e
mov r10, qword [rsp + 0x30]
inc dword [r10 + 0x3c]
mov rax, qword [r10 + 8]
lea rcx, [rsi + rsi*2]
xor r8d, r8d
mov byte [rax + rcx*8], dil
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], ebx
mov dword [rax + rcx*8 + 8], ebp
mov dword [rax + rcx*8 + 0xc], r13d
mov qword [rax + rcx*8 + 0x10], r8
mov byte [rax + rcx*8 + 1], r8b
mov rbp, qword [rsp + 0xe0]
mov rdx, r12
mov rdi, qword [rbp + 0x10]
mov rcx, rbp
call fcn.00481820
mov rbx, qword [rdi + 8]
mov rcx, qword [rdi]
test rbx, rbx
mov rsi, rax
je 0x4a92a0
cmp byte [rcx + 0x50], 0
jne 0x4a92a0
mov edx, dword [rdi + 0x3c]
dec edx
movsxd rdx, edx
lea rdi, [rdx + rdx*2]
movsx edx, byte [rbx + rdi*8 + 1]
mov r8, qword [rbx + rdi*8 + 0x10]
call fcn.00441fd0
xor r12d, r12d
test rsi, rsi
mov qword [rbx + rdi*8 + 0x10], r12
jne 0x4a928e
mov qword [rbx + rdi*8 + 0x10], r12
mov byte [rbx + rdi*8 + 1], r12b
jmp 0x4a92ca
mov qword [rbx + rdi*8 + 0x10], rsi
mov byte [rbx + rdi*8 + 1], 0xfa
jmp 0x4a92ca
mov r8, rax
mov edx, 0xfffffffa
call fcn.00441fd0
xor r12d, r12d
jmp 0x4a92ca
mov rbp, qword [rsp + 0xe0]
xor r12d, r12d
jmp 0x4a92ca
mov rbp, qword [rsp + 0xe0]
xor r12d, r12d
test r13d, r13d
js 0x4a9329
mov rax, qword [rbp + 0x1c0]
mov r8, rbp
mov ecx, r13d
test rax, rax
cmovne r8, rax
mov eax, 1
mov edx, dword [r8 + 0x16c]
shl eax, cl
test eax, edx
jne 0x4a9329
or edx, eax
mov rax, qword [r8]
mov dword [r8 + 0x16c], edx
mov rax, qword [rax + 0x20]
mov rdx, r15
shl rdx, 5
cmp r13d, 1
mov rdx, qword [rax + rdx + 0x18]
mov eax, dword [rdx]
mov dword [r8 + r15*4 + 0x170], eax
jne 0x4a9329
mov rcx, r8
call fcn.004a7960
mov edx, dword [r14 + 0x54]
mov ecx, r12d
test edx, edx
jle 0x4a9361
mov rax, qword [rsp + 0x50]
mov rdi, qword [rsp + 0xe8]
mov r8d, dword [rax + rdi + 0x50]
lea rax, [r14 + 0x58]
nop
nop
cmp dword [rax], r8d
je 0x4a9369
inc ecx
add rax, 4
cmp ecx, edx
jl 0x4a9350
jmp 0x4a9369
mov rdi, qword [rsp + 0xe8]
mov r8, qword [rsp + 0x40]
mov r9d, dword [rsp + 0x110]
mov r10, qword [rsp + 0x48]
mov r11w, word [rsp + 0xf8]
add r8, 0x50
dec qword [rsp + 0x88]
mov qword [rsp + 0x40], r8
jne 0x4a8dd0
mov r15d, dword [rsp + 0x3c]
mov rsi, qword [rsp + 0x30]
mov eax, dword [rsi + 0x3c]
mov dword [r14 + 0x3c], eax
cmp byte [r10 + 0x50], 0
jne 0x4a946d
test r15d, r15d
jle 0x4a9463
mov r13w, word [rsp + 0xf8]
lea rbx, [r14 + 0x364]
mov rax, qword [rbx + 0x1c]
bt dword [rax + 0x28], 0xe
jae 0x4a9410
movzx eax, byte [rbx]
mov r9, qword [rsp + 0x58]
lea rcx, [rbx - 0x24]
imul rax, rax, 0x78
mov qword [rsp + 0x20], rcx
lea rdx, [r14 + 0x158]
lea r8, [rax + rdi + 8]
mov rcx, rbp
call fcn.00494570
mov r10, qword [rsp + 0x48]
cmp byte [r10 + 0x50], 0
jne 0x4a946d
movzx eax, byte [rbx]
lea r8, [rbx - 0x24]
mov r9d, r12d
mov rdx, rdi
mov rcx, rbp
mov word [rsp + 0x28], r13w
mov dword [rsp + 0x20], eax
call fcn.00474e40
mov r11d, dword [rsi + 0x3c]
mov r8, qword [rsp + 0x58]
mov edx, r12d
mov rcx, r14
mov dword [rbx - 4], r11d
call fcn.004958e0
inc r12d
mov qword [rsp + 0x58], rax
mov eax, dword [rbx - 0xc]
add rbx, 0x50
cmp r12d, r15d
mov dword [r14 + 0x40], eax
jl 0x4a93d0
mov rax, r14
jmp 0x4a948c
mov r10, qword [rsp + 0x48]
mov rcx, qword [rsp + 0xe0]
mov eax, dword [r14 + 0x48]
mov rdx, r14
mov dword [rcx + 0x1d8], eax
mov rcx, r10
call fcn.0044c140
xor eax, eax
mov r12, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0xd0]
mov r14, qword [rsp + 0xa0]
mov r15, qword [rsp + 0x98]
mov r13, qword [rsp + 0xa8]
mov rdi, qword [rsp + 0xb8]
mov rsi, qword [rsp + 0xc0]
mov rbp, qword [rsp + 0xc8]
add rsp, 0xd8
ret