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

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xc8
mov qword [rsp + 0xb8], 0xfffffffffffffffe
lea rcx, [rsp + 0x20]
call fcn.004050bc
nop
mov eax, dword [rsp + 0x28]
xor r15d, r15d
cmp eax, r15d
jne 0x4366d1
lea rdx, str.CRC32
lea rcx, [rsp + 0x60]
call fcn.004036f4
mov rbx, rax
lea ecx, [r15 + 0x10]
call fcn.00402398
mov qword [rsp + 0x120], rax
cmp rax, r15
je 0x4366b2
mov rdx, rbx
mov rcx, rax
call fcn.0040374c
jmp 0x4366b5
mov rax, r15
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.004010c0
nop
mov rcx, qword [rsp + 0x60]
call fcn.004023c4
mov eax, dword [rsp + 0x28]
mov r14, r15
mov qword [rsp + 0x30], r15
mov ebp, r15d
mov dword [rsp + 0x38], r15d
mov dword [rsp + 0x3c], r15d
mov rdi, r15
mov qword [rsp + 0x40], r15
mov ebx, r15d
mov dword [rsp + 0x48], r15d
mov dword [rsp + 0x4c], r15d
mov esi, r15d
mov r13d, 0xffffffff
cmp eax, r15d
jbe 0x436a66
mov r12, r15
mov qword [rsp + 0x78], r15
mov dword [rsp + 0x80], r15d
mov dword [rsp + 0x84], r15d
lea rcx, [rsp + 0x88]
call fcn.00402f84
nop
lea rcx, [rsp + 0x98]
call fcn.00403640
nop
mov rax, qword [rsp + 0x20]
mov rdx, qword [r12 + rax]
lea rcx, [rsp + 0x78]
call fcn.00410824
mov edi, eax
cmp eax, r15d
jne 0x436838
cmp dword [rsp + 0x90], r15d
jne 0x43677d
lea rdx, str.CRC32
lea rcx, [rsp + 0x88]
call fcn.00403034
lea rdx, [0x004cfad0]
mov rcx, qword [rsp + 0x88]
call sub.msvcrt.dll_strcmp
cmp eax, r15d
je 0x4368d5
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0x88]
call fcn.0040c2c0
cmp al, r15b
je 0x4369c8
mov ecx, r15d
mov edi, ebp
mov r8, qword [rsp + 0xb0]
cmp ebp, r15d
je 0x4367e6
lea edx, [rdi + rcx]
shr edx, 1
cmp r8, qword [r14 + rdx*8]
je 0x4367fd
cmp r8, qword [r14 + rdx*8]
jae 0x4367df
mov edi, edx
jmp 0x4367e2
lea ecx, [rdx + 1]
cmp ecx, edi
jne 0x4367ca
mov edx, edi
lea rcx, [rsp + 0x30]
call fcn.00436198
mov edx, edi
mov ebp, dword [rsp + 0x38]
mov r14, qword [rsp + 0x30]
cmp ebp, ebx
je 0x436814
lea r8, [rsp + 0x78]
lea rcx, [rsp + 0x40]
call fcn.00436564
mov ebx, dword [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.00412d04
inc esi
add r12, 8
cmp esi, dword [rsp + 0x28]
jb 0x436710
mov rdi, qword [rsp + 0x40]
jmp 0x436a66
lea rcx, [rsp + 0x78]
call fcn.00412d04
nop
movsxd rax, ebx
mov r13d, 0xffffffff
mov r12, qword [rsp + 0x40]
cmp ebx, r15d
je 0x43687e
lea rsi, [r12 + rax*8]
add ebx, r13d
sub rsi, 8
mov rbp, qword [rsi]
cmp rbp, r15
je 0x436879
mov rcx, rbp
call fcn.00412d04
mov rcx, rbp
call fcn.004023c4
cmp ebx, r15d
jne 0x43685a
mov rcx, r12
call fcn.004023c4
nop
mov rcx, r14
call fcn.004023c4
nop
movsxd rbx, dword [rsp + 0x28]
mov rsi, rbx
cmp ebx, r15d
je 0x436e3d
shl rsi, 3
add ebx, r13d
sub rsi, 8
mov rax, qword [rsp + 0x20]
mov rbp, qword [rsi + rax]
cmp rbp, r15
je 0x4368cb
mov rcx, qword [rbp]
call fcn.004023c4
mov rcx, rbp
call fcn.004023c4
cmp ebx, r15d
jne 0x4368a5
jmp 0x436e3d
mov qword [rsp + 0x50], r15
mov dword [rsp + 0x58], r15d
mov dword [rsp + 0x5c], r15d
lea rcx, [rsp + 0x50]
call fcn.0040c7dc
movsxd rax, ebx
mov rdi, qword [rsp + 0x40]
cmp ebx, r15d
je 0x436923
lea rsi, [rdi + rax*8]
add ebx, r13d
sub rsi, 8
mov rbp, qword [rsi]
cmp rbp, r15
je 0x43691e
mov rcx, rbp
call fcn.00412d04
mov rcx, rbp
call fcn.004023c4
cmp ebx, r15d
jne 0x4368ff
mov ebx, r15d
mov dword [rsp + 0x48], r15d
mov ebp, r15d
mov dword [rsp + 0x38], r15d
mov esi, r15d
cmp dword [rsp + 0x58], r15d
jbe 0x4369ae
mov r12, r15
mov rax, qword [rsp + 0x50]
mov r8, qword [r12 + rax]
mov ecx, r15d
mov edi, ebp
cmp ebp, r15d
je 0x43696f
lea edx, [rdi + rcx]
shr edx, 1
cmp r8, qword [r14 + rdx*8]
je 0x436986
cmp r8, qword [r14 + rdx*8]
jae 0x436968
mov edi, edx
jmp 0x43696b
lea ecx, [rdx + 1]
cmp ecx, edi
jne 0x436953
mov edx, edi
lea rcx, [rsp + 0x30]
call fcn.00436198
mov edx, edi
mov ebp, dword [rsp + 0x38]
mov r14, qword [rsp + 0x30]
cmp ebp, ebx
je 0x43699d
lea r8, [rsp + 0x78]
lea rcx, [rsp + 0x40]
call fcn.00436564
mov ebx, dword [rsp + 0x48]
inc esi
add r12, 8
cmp esi, dword [rsp + 0x58]
jb 0x436940
mov rdi, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x50]
call fcn.004023c4
nop
lea rcx, [rsp + 0x78]
call fcn.00412d04
jmp 0x436a66
lea rcx, [rsp + 0x78]
call fcn.00412d04
nop
movsxd rax, ebx
mov r13d, 0xffffffff
mov rbp, qword [rsp + 0x40]
cmp ebx, r15d
je 0x436a0f
lea rdi, [rbp + rax*8]
add ebx, r13d
sub rdi, 8
mov rsi, qword [rdi]
cmp rsi, r15
je 0x436a0a
mov rcx, rsi
call fcn.00412d04
mov rcx, rsi
call fcn.004023c4
cmp ebx, r15d
jne 0x4369eb
mov rcx, rbp
call fcn.004023c4
nop
mov rcx, r14
call fcn.004023c4
nop
movsxd rbx, dword [rsp + 0x28]
mov rdi, rbx
cmp ebx, r15d
je 0x436a5c
shl rdi, 3
add ebx, r13d
sub rdi, 8
mov rax, qword [rsp + 0x20]
mov rsi, qword [rdi + rax]
cmp rsi, r15
je 0x436a57
mov rcx, qword [rsi]
call fcn.004023c4
mov rcx, rsi
call fcn.004023c4
cmp ebx, r15d
jne 0x436a32
mov edi, 0x80004001
jmp 0x436e3d
test ebp, ebp
je 0x436e4e
mov rsi, rdi
mov qword [rsp + 0x70], rdi
mov r12, r14
sub r12, rdi
mov qword [rsp + 0xa8], r12
mov qword [rsp + 0x120], 0
lea rcx, [rsp + 0x60]
call fcn.00402f84
nop
lea r8, [rsp + 0x120]
lea rdx, [rsp + 0x60]
mov rcx, qword [r12 + rsi]
call fcn.0040c69c
mov r12d, eax
test eax, eax
jne 0x436c22
mov rcx, qword [rsp + 0x120]
test rcx, rcx
je 0x436cc4
mov rsi, qword [rsi]
mov qword [rsp + 0x128], 0
mov rax, qword [rcx]
lea r8, [rsp + 0x128]
lea rdx, [0x004d80b0]
call qword [rax]
mov rcx, qword [rsp + 0x128]
test rcx, rcx
je 0x436b1e
xor r8d, r8d
mov rdx, rcx
mov rcx, rsi
call fcn.0040fd38
mov r12d, eax
test eax, eax
jne 0x436ce8
mov rcx, qword [rsp + 0x128]
test rcx, rcx
je 0x436b29
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x120]
mov rax, qword [rcx]
call qword [rax + 0x30]
mov r14d, eax
cmp eax, 0x40
ja 0x436d9e
mov ecx, 0x120
call fcn.00402398
mov rsi, rax
mov qword [rsp + 0x50], rax
test rax, rax
je 0x436b6d
mov qword [rax], 0
lea rcx, [rax + 8]
call fcn.00402f84
nop
jmp 0x436b6f
xor esi, esi
mov rcx, qword [rsp + 0x110]
add rcx, 8
mov rdx, rsi
call fcn.004010c0
mov r12, qword [rsp + 0x120]
test r12, r12
je 0x436b9a
mov rax, qword [r12]
mov rcx, r12
call qword [rax + VariantCopy]
mov rcx, qword [rsi]
test rcx, rcx
je 0x436ba8
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rsi], r12
lea rcx, [rsi + 8]
lea rdx, [rsp + 0x60]
call fcn.00403098
mov dword [rsi + 0x18], r14d
add rsi, 0x1c
mov r12d, 4
mov r8, r14
xor edx, edx
mov rcx, rsi
call sub.msvcrt.dll_memset
add rsi, 0x40
dec r12
jne 0x436bc7
mov rcx, qword [rsp + 0x60]
call fcn.004023c4
nop
mov rcx, qword [rsp + 0x120]
test rcx, rcx
je 0x436bfb
mov rax, qword [rcx]
call qword [rax + 0x10]
inc r15d
mov rsi, qword [rsp + 0x70]
add rsi, 8
mov qword [rsp + 0x70], rsi
cmp r15d, ebp
mov r12, qword [rsp + 0xa8]
jb 0x436a84
jmp 0x436e4e
mov rcx, qword [rsp + 0x60]
call fcn.004023c4
nop
mov rcx, qword [rsp + 0x120]
test rcx, rcx
je 0x436c41
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
movsxd rax, ebx
test ebx, ebx
je 0x436c6f
lea rsi, [rdi + rax*8]
add ebx, r13d
sub rsi, 8
mov rbp, qword [rsi]
test rbp, rbp
je 0x436c6b
mov rcx, rbp
call fcn.00412d04
mov rcx, rbp
call fcn.004023c4
test ebx, ebx
jne 0x436c4c
mov rcx, rdi
call fcn.004023c4
nop
mov rcx, qword [rsp + 0x30]
call fcn.004023c4
nop
movsxd rbx, dword [rsp + 0x28]
mov rdi, rbx
test ebx, ebx
je 0x436cbc
shl rdi, 3
add ebx, r13d
sub rdi, 8
mov rax, qword [rsp + 0x20]
mov rsi, qword [rdi + rax]
test rsi, rsi
je 0x436cb8
mov rcx, qword [rsi]
call fcn.004023c4
mov rcx, rsi
call fcn.004023c4
test ebx, ebx
jne 0x436c93
mov edi, r12d
jmp 0x436e3d
lea rax, str.Cant_create_hasher
mov qword [rsp + 0x128], rax
lea rdx, [0x00506690]
lea rcx, [rsp + 0x128]
call sub.msvcrt.dll__CxxThrowException
int3
mov rcx, qword [rsp + 0x128]
test rcx, rcx
je 0x436cfc
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rcx, qword [rsp + 0x60]
call fcn.004023c4
nop
mov rcx, qword [rsp + 0x120]
test rcx, rcx
je 0x436d1b
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
movsxd rax, ebx
test ebx, ebx
je 0x436d49
lea rsi, [rdi + rax*8]
add ebx, r13d
sub rsi, 8
mov rbp, qword [rsi]
test rbp, rbp
je 0x436d45
mov rcx, rbp
call fcn.00412d04
mov rcx, rbp
call fcn.004023c4
test ebx, ebx
jne 0x436d26
mov rcx, rdi
call fcn.004023c4
nop
mov rcx, qword [rsp + 0x30]
call fcn.004023c4
nop
movsxd rbx, dword [rsp + 0x28]
mov rdi, rbx
test ebx, ebx
je 0x436d96
shl rdi, 3
add ebx, r13d
sub rdi, 8
mov rax, qword [rsp + 0x20]
mov rsi, qword [rdi + rax]
test rsi, rsi
je 0x436d92
mov rcx, qword [rsi]
call fcn.004023c4
mov rcx, rsi
call fcn.004023c4
test ebx, ebx
jne 0x436d6d
mov edi, r12d
jmp 0x436e3d
mov rcx, qword [rsp + 0x60]
call fcn.004023c4
nop
mov rcx, qword [rsp + 0x120]
test rcx, rcx
je 0x436dbd
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
movsxd rax, ebx
test ebx, ebx
je 0x436deb
lea rsi, [rdi + rax*8]
add ebx, r13d
sub rsi, 8
mov rbp, qword [rsi]
test rbp, rbp
je 0x436de7
mov rcx, rbp
call fcn.00412d04
mov rcx, rbp
call fcn.004023c4
test ebx, ebx
jne 0x436dc8
mov rcx, rdi
call fcn.004023c4
nop
mov rcx, qword [rsp + 0x30]
call fcn.004023c4
nop
movsxd rbx, dword [rsp + 0x28]
mov rdi, rbx
test ebx, ebx
je 0x436e38
shl rdi, 3
add ebx, r13d
sub rdi, 8
mov rax, qword [rsp + 0x20]
mov rsi, qword [rdi + rax]
test rsi, rsi
je 0x436e34
mov rcx, qword [rsi]
call fcn.004023c4
mov rcx, rsi
call fcn.004023c4
test ebx, ebx
jne 0x436e0f
mov edi, 0x80004001
mov rcx, qword [rsp + 0x20]
call fcn.004023c4
mov eax, edi
jmp 0x436ed5
movsxd rax, ebx
test ebx, ebx
je 0x436e7c
lea rsi, [rdi + rax*8]
add ebx, r13d
sub rsi, 8
mov rbp, qword [rsi]
test rbp, rbp
je 0x436e78
mov rcx, rbp
call fcn.00412d04
mov rcx, rbp
call fcn.004023c4
test ebx, ebx
jne 0x436e59
mov rcx, rdi
call fcn.004023c4
nop
mov rcx, qword [rsp + 0x30]
call fcn.004023c4
nop
movsxd rbx, dword [rsp + 0x28]
mov rdi, rbx
test ebx, ebx
je 0x436ec9
shl rdi, 3
add ebx, r13d
sub rdi, 8
mov rax, qword [rsp + 0x20]
mov rsi, qword [rdi + rax]
test rsi, rsi
je 0x436ec5
mov rcx, qword [rsi]
call fcn.004023c4
mov rcx, rsi
call fcn.004023c4
test ebx, ebx
jne 0x436ea0
mov rcx, qword [rsp + 0x20]
call fcn.004023c4
xor eax, eax
add rsp, 0xc8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret