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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb8
mov qword [rsp + 0xa0], 0xfffffffffffffffe
mov rdi, r8
mov r12, rdx
mov rsi, rcx
xor r14d, r14d
mov byte [rcx + 0x48], r14b
mov byte [rcx + 0x49], r14b
mov byte [rcx + 0x4a], r14b
mov byte [rcx + 0x4b], r14b
mov rcx, rdx
call fcn.00475ca0
mov rcx, qword [r12 + 0x90]
mov rax, qword [rcx]
lea r9, [r12 + 0x20]
lea r15d, [r14 + 1]
mov r8d, r15d
xor edx, edx
call qword [rax + 0x20]
cmp eax, r14d
jne 0x47642f
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x118], r14
mov r8d, 0x20
lea rdx, [rsp + 0x80]
mov rcx, qword [r12 + 0x90]
call fcn.004118e0
mov ebx, eax
cmp eax, r14d
je 0x475dde
jmp 0x475f47
mov r8d, 8
lea rbx, str.MSCF
mov rdx, rbx
lea rcx, [rsp + 0x80]
call sub.msvcrt.dll_memcmp
cmp eax, r14d
jne 0x475f3a
lea rdx, [rsp + 0x80]
lea rcx, [r12 + 0x28]
call fcn.0047536c
cmp al, r14b
je 0x475f3a
mov ecx, 0x30
call fcn.0040232c
mov rbx, rax
cmp rax, r14
je 0x475e45
mov dword [rax + 8], r14d
lea rax, [0x004d0320]
mov qword [rbx], rax
mov qword [rbx + 0x10], r14
jmp 0x475e48
mov rbx, r14
cmp rbx, r14
je 0x475e56
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + VariantCopy]
mov qword [rsp + 0x118], rbx
mov rdi, qword [r12 + 0x90]
cmp rdi, r14
je 0x475e74
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + VariantCopy]
mov rcx, qword [rbx + 0x10]
cmp rcx, r14
je 0x475e83
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rbx + 0x10], rdi
mov ecx, dword [r12 + 0x88]
add ecx, 0xfffffff8
mov qword [rbx + 0x18], rcx
mov qword [rbx + 0x20], r14
mov byte [rbx + 0x28], r14b
mov qword [rsp + 0x38], r14
mov r13d, 0x8000
mov rcx, r13
call fcn.0040232c
mov r15, rax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], r13
mov r8d, 0x20
lea rdx, [rsp + 0x80]
mov rcx, rax
call sub.msvcrt.dll_memcpy
lea r14, [r15 + 0x20]
mov r10, qword [rbx]
lea r9, [rsp + 0x100]
lea r8d, [r13 - 0x20]
mov rdx, r14
mov rcx, rbx
call qword [r10 + 0x18]
mov edi, eax
xor r8d, r8d
cmp eax, r8d
je 0x475f0a
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + 0x10]
nop
jmp 0x476425
mov eax, dword [rsp + 0x100]
add eax, 0x20
mov qword [rsi + 0x10], r15
mov qword [rsi + 0x28], r13
mov qword [rsi + 0x20], r8
mov qword [rsi], r14
add rax, r15
mov qword [rsi + 8], rax
mov byte [rsi + 0x30], r8b
mov dword [rsi + 0x34], r8d
mov r14, r8
jmp 0x47610a
cmp rdi, r14
je 0x475f55
cmp qword [rdi], r14
jne 0x475f55
mov ebx, r15d
xor ecx, ecx
call fcn.00402358
mov eax, ebx
jmp 0x47642f
mov rax, qword [r12 + 0x90]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x50], rbx
mov dword [rsp + 0x58], 8
mov qword [rsp + 0x78], rdi
mov edi, 0x20
mov dword [rsp + 0x5c], edi
mov dword [rsp + 0x60], edi
mov dword [rsp + 0x64], 0x8020
mov qword [rsp + 0x38], r14
mov ebx, 0x8030
mov rcx, rbx
call fcn.0040232c
mov r15, rax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x40], rax
mov r8, rdi
lea rdx, [rsp + 0x80]
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov r11, qword [r12 + 0x20]
mov qword [rsp + 0x70], r11
mov dword [rsp + 0x4c], edi
mov dword [rsp + 0x48], 1
lea rcx, [rsp + 0x40]
call fcn.00475210
cmp eax, r14d
jne 0x476015
mov edi, dword [rsp + 0x48]
mov rdx, rdi
add rdx, qword [rsp + 0x40]
lea rcx, [r12 + 0x28]
call fcn.0047536c
cmp al, r14b
jne 0x47601c
inc edi
mov dword [rsp + 0x48], edi
lea rcx, [rsp + 0x40]
call fcn.00475210
cmp eax, r14d
je 0x475fe5
mov edi, eax
jmp 0x476425
mov r14, rdi
mov rax, qword [rsp + 0x70]
lea rcx, [rdi + rax]
mov qword [r12 + 0x20], rcx
mov ecx, 0x30
call fcn.0040232c
mov rbx, rax
xor r8d, r8d
cmp rax, r8
je 0x476056
mov dword [rax + 8], r8d
lea rax, [0x004d0320]
mov qword [rbx], rax
mov qword [rbx + 0x10], r8
jmp 0x476059
mov rbx, r8
mov r13, qword [r12 + 0x90]
cmp r13, r8
je 0x476073
mov rax, qword [r13]
mov rcx, r13
call qword [rax + VariantCopy]
xor r8d, r8d
mov rcx, qword [rbx + 0x10]
cmp rcx, r8
je 0x476085
mov rax, qword [rcx]
call qword [rax + 0x10]
xor r8d, r8d
mov qword [rbx + 0x10], r13
cmp rbx, r8
je 0x47609a
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + VariantCopy]
xor r8d, r8d
mov qword [rsp + 0x118], rbx
mov edx, dword [rsp + 0x4c]
mov eax, edx
sub eax, edi
mov ecx, dword [r12 + 0x88]
cmp ecx, eax
ja 0x4760cf
mov qword [rbx + 0x18], r8
mov qword [rbx + 0x20], r8
mov byte [rbx + 0x28], r8b
mov eax, dword [r12 + 0x88]
lea edx, [rdi + rax]
jmp 0x4760df
sub ecx, eax
mov eax, ecx
mov qword [rbx + 0x18], rax
mov qword [rbx + 0x20], r8
mov byte [rbx + 0x28], r8b
lea eax, [rdi + 0x20]
mov qword [rsi + 0x10], r15
mov r13d, 0x8000
mov qword [rsi + 0x28], r13
mov qword [rsi + 0x20], r8
add rax, r15
mov qword [rsi], rax
lea rax, [rdx + r15]
mov qword [rsi + 8], rax
mov byte [rsi + 0x30], r8b
mov dword [rsi + 0x34], r8d
mov byte [rsi + 0x48], 1
mov qword [rsi + 0x18], rbx
cmp qword [rsi + 0x40], r8
jne 0x47614c
mov edi, 0x1000
cmp qword [rsi + 0x40], rdi
je 0x47614c
mov rcx, qword [rsi + 0x38]
cmp rcx, r8
je 0x476138
call fcn.00402358
xor r8d, r8d
mov qword [rsi + 0x38], r8
mov qword [rsi + 0x40], r8
mov rcx, rdi
call fcn.0040232c
mov qword [rsi + 0x38], rax
mov qword [rsi + 0x40], rdi
mov r8d, dword [r12 + 0x34]
shr r8d, 2
and r8d, 1
lea r8d, [r8*4 + 4]
lea rdx, [rsp + 0x20]
mov rcx, rsi
call fcn.004751dc
movzx r11d, word [rsp + 0x20]
mov dword [r12 + 0x38], r11d
movzx eax, word [rsp + 0x22]
mov dword [r12 + 0x3c], eax
mov eax, dword [r12 + 0x34]
shr eax, 2
test al, 1
je 0x4761b6
mov ecx, dword [rsp + 0x24]
mov word [r12 + 0x40], cx
mov al, byte [rsp + 0x26]
mov byte [r12 + 0x42], al
mov al, byte [rsp + 0x27]
mov byte [r12 + 0x43], al
movzx edx, cx
mov rcx, rsi
call fcn.004751a8
test byte [r12 + 0x34], 1
je 0x4761d8
lea rdx, [r12 + 0x48]
mov rcx, rsi
call fcn.00475540
lea rdx, [r12 + 0x58]
mov rcx, rsi
call fcn.00475540
mov eax, dword [r12 + 0x34]
shr eax, 1
test al, 1
je 0x4761fd
lea rdx, [r12 + 0x68]
mov rcx, rsi
call fcn.00475540
lea rdx, [r12 + 0x78]
mov rcx, rsi
call fcn.00475540
mov edi, dword [r12 + 0x2c]
xor r13d, r13d
mov dword [r12 + 8], r13d
cmp edi, dword [r12 + 0xc]
jbe 0x476238
mov rcx, qword [r12]
call fcn.00402358
mov qword [r12], r13
mov dword [r12 + 0xc], r13d
mov rcx, rdi
shl rcx, 3
call fcn.0040232c
mov qword [r12], rax
mov dword [r12 + 0xc], edi
mov edi, r13d
cmp dword [r12 + 0x2c], r13d
jbe 0x4762b6
mov r8d, 8
lea rdx, [rsp + 0x20]
mov rcx, rsi
call fcn.004751dc
mov r11d, dword [rsp + 0x20]
mov dword [rsp + 0x108], r11d
movzx eax, word [rsp + 0x24]
mov word [rsp + 0x10c], ax
mov al, byte [rsp + 0x26]
mov byte [rsp + 0x10e], al
mov al, byte [rsp + 0x27]
mov byte [rsp + 0x10f], al
movzx edx, byte [r12 + 0x42]
mov rcx, rsi
call fcn.004751a8
mov r11d, dword [r12 + 8]
mov rcx, qword [r12]
mov rax, qword [rsp + 0x108]
mov qword [rcx + r11*8], rax
inc dword [r12 + 8]
inc edi
cmp edi, dword [r12 + 0x2c]
jb 0x476242
mov edx, dword [r12 + 0x8c]
mov eax, dword [rsi + 0x34]
sub rax, qword [rsi + 0x10]
sub rax, r14
add rax, qword [rsi + 0x20]
add rax, qword [rsi]
cmp rax, rdx
je 0x476328
mov rcx, qword [r12 + 0x90]
mov r10, qword [rcx]
add rdx, qword [r12 + 0x20]
xor r9d, r9d
xor r8d, r8d
call qword [r10 + 0x20]
mov edi, eax
cmp eax, r13d
je 0x476304
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + 0x10]
nop
jmp 0x476425
mov eax, dword [r12 + 0x88]
sub eax, dword [r12 + 0x8c]
mov qword [rbx + 0x18], rax
mov qword [rbx + 0x20], r13
mov byte [rbx + 0x28], r13b
mov rcx, rsi
call fcn.0040e810
mov edx, dword [r12 + 0x30]
lea rcx, [r12 + 0x10]
call fcn.00420a30
cmp dword [r12 + 0x30], r13d
jbe 0x476419
mov r8d, 0x10
lea rdx, [rsp + 0x20]
mov rcx, rsi
call fcn.004751dc
mov ecx, 0x28
call fcn.0040232c
mov rdi, rax
mov qword [rsp + 0x108], rax
test rax, rax
je 0x476379
mov rcx, rax
call fcn.00402da8
jmp 0x47637b
xor edi, edi
mov ecx, dword [r12 + 0x18]
mov rax, qword [r12 + 0x10]
mov qword [rax + rcx*8], rdi
inc dword [r12 + 0x18]
mov eax, dword [rsp + 0x20]
mov dword [rdi + 0x14], eax
mov eax, dword [rsp + 0x24]
mov dword [rdi + 0x10], eax
movzx eax, word [rsp + 0x28]
mov dword [rdi + 0x1c], eax
movzx ecx, word [rsp + 0x2a]
shl ecx, 0x10
movzx eax, word [rsp + 0x2c]
or ecx, eax
mov dword [rdi + 0x18], ecx
movzx eax, word [rsp + 0x2e]
mov word [rdi + 0x22], ax
mov rdx, rdi
mov rcx, rsi
call fcn.00475540
mov r11d, dword [r12 + 8]
mov eax, dword [rdi + 0x1c]
cmp eax, 0xfffd
je 0x4763e0
cmp eax, 0xffff
jne 0x4763e4
xor eax, eax
jmp 0x4763ef
cmp eax, 0xfffe
jne 0x4763ef
lea eax, [r11 - 1]
cmp eax, r11d
jge 0x476404
inc r13d
cmp r13d, dword [r12 + 0x30]
jb 0x476342
jmp 0x476419
mov byte [rsi + 0x4b], 1
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
nop
mov edi, 1
jmp 0x476425
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
nop
xor edi, edi
mov rcx, r15
call fcn.00402358
mov eax, edi
add rsp, 0xb8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret