Function at 0x4372ec
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.00405164
nop
mov eax, dword [rsp + 0x28]
xor r15d, r15d
cmp eax, r15d
jne 0x43737d
lea rdx, str.CRC32
lea rcx, [rsp + 0x60]
call fcn.00403710
mov rbx, rax
lea ecx, [r15 + 0x10]
call fcn.00402388
mov qword [rsp + 0x120], rax
cmp rax, r15
je 0x43735e
mov rdx, rbx
mov rcx, rax
call fcn.00403768
jmp 0x437361
mov rax, r15
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.004010c0
nop
mov rcx, qword [rsp + 0x60]
call sub.msvcrt.dll_free
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 0x437712
mov r12, r15
mov qword [rsp + 0x78], r15
mov dword [rsp + 0x80], r15d
mov dword [rsp + 0x84], r15d
lea rcx, [rsp + 0x88]
call fcn.00402f74
nop
lea rcx, [rsp + 0x98]
call fcn.0040365c
nop
mov rax, qword [rsp + 0x20]
mov rdx, qword [r12 + rax]
lea rcx, [rsp + 0x78]
call fcn.004108f8
mov edi, eax
cmp eax, r15d
jne 0x4374e4
cmp dword [rsp + 0x90], r15d
jne 0x437429
lea rdx, str.CRC32
lea rcx, [rsp + 0x88]
call fcn.00403024
lea rdx, [0x004d0ae0]
mov rcx, qword [rsp + 0x88]
call sub.msvcrt.dll_strcmp
cmp eax, r15d
je 0x437581
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0x88]
call fcn.0040c344
cmp al, r15b
je 0x437674
mov ecx, r15d
mov edi, ebp
mov r8, qword [rsp + 0xb0]
cmp ebp, r15d
je 0x437492
lea edx, [rdi + rcx]
shr edx, 1
cmp r8, qword [r14 + rdx*8]
je 0x4374a9
cmp r8, qword [r14 + rdx*8]
jae 0x43748b
mov edi, edx
jmp 0x43748e
lea ecx, [rdx + 1]
cmp ecx, edi
jne 0x437476
mov edx, edi
lea rcx, [rsp + 0x30]
call fcn.00404c8c
mov edx, edi
mov ebp, dword [rsp + 0x38]
mov r14, qword [rsp + 0x30]
cmp ebp, ebx
je 0x4374c0
lea r8, [rsp + 0x78]
lea rcx, [rsp + 0x40]
call fcn.00437210
mov ebx, dword [rsp + 0x48]
lea rcx, [rsp + 0x78]
call fcn.00412ba4
inc esi
add r12, 8
cmp esi, dword [rsp + 0x28]
jb 0x4373bc
mov rdi, qword [rsp + 0x40]
jmp 0x437712
lea rcx, [rsp + 0x78]
call fcn.00412ba4
nop
movsxd rax, ebx
mov r13d, 0xffffffff
mov r12, qword [rsp + 0x40]
cmp ebx, r15d
je 0x43752a
lea rsi, [r12 + rax*8]
add ebx, r13d
sub rsi, 8
mov rbp, qword [rsi]
cmp rbp, r15
je 0x437525
mov rcx, rbp
call fcn.00412ba4
mov rcx, rbp
call sub.msvcrt.dll_free
cmp ebx, r15d
jne 0x437506
mov rcx, r12
call sub.msvcrt.dll_free
nop
mov rcx, r14
call sub.msvcrt.dll_free
nop
movsxd rbx, dword [rsp + 0x28]
mov rsi, rbx
cmp ebx, r15d
je 0x437ae9
shl rsi, 3
add ebx, r13d
sub rsi, 8
mov rax, qword [rsp + 0x20]
mov rbp, qword [rsi + rax]
cmp rbp, r15
je 0x437577
mov rcx, qword [rbp]
call sub.msvcrt.dll_free
mov rcx, rbp
call sub.msvcrt.dll_free
cmp ebx, r15d
jne 0x437551
jmp 0x437ae9
mov qword [rsp + 0x50], r15
mov dword [rsp + 0x58], r15d
mov dword [rsp + 0x5c], r15d
lea rcx, [rsp + 0x50]
call fcn.0040c86c
movsxd rax, ebx
mov rdi, qword [rsp + 0x40]
cmp ebx, r15d
je 0x4375cf
lea rsi, [rdi + rax*8]
add ebx, r13d
sub rsi, 8
mov rbp, qword [rsi]
cmp rbp, r15
je 0x4375ca
mov rcx, rbp
call fcn.00412ba4
mov rcx, rbp
call sub.msvcrt.dll_free
cmp ebx, r15d
jne 0x4375ab
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 0x43765a
mov r12, r15
mov rax, qword [rsp + 0x50]
mov r8, qword [r12 + rax]
mov ecx, r15d
mov edi, ebp
cmp ebp, r15d
je 0x43761b
lea edx, [rdi + rcx]
shr edx, 1
cmp r8, qword [r14 + rdx*8]
je 0x437632
cmp r8, qword [r14 + rdx*8]
jae 0x437614
mov edi, edx
jmp 0x437617
lea ecx, [rdx + 1]
cmp ecx, edi
jne 0x4375ff
mov edx, edi
lea rcx, [rsp + 0x30]
call fcn.00404c8c
mov edx, edi
mov ebp, dword [rsp + 0x38]
mov r14, qword [rsp + 0x30]
cmp ebp, ebx
je 0x437649
lea r8, [rsp + 0x78]
lea rcx, [rsp + 0x40]
call fcn.00437210
mov ebx, dword [rsp + 0x48]
inc esi
add r12, 8
cmp esi, dword [rsp + 0x58]
jb 0x4375ec
mov rdi, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x50]
call sub.msvcrt.dll_free
nop
lea rcx, [rsp + 0x78]
call fcn.00412ba4
jmp 0x437712
lea rcx, [rsp + 0x78]
call fcn.00412ba4
nop
movsxd rax, ebx
mov r13d, 0xffffffff
mov rbp, qword [rsp + 0x40]
cmp ebx, r15d
je 0x4376bb
lea rdi, [rbp + rax*8]
add ebx, r13d
sub rdi, 8
mov rsi, qword [rdi]
cmp rsi, r15
je 0x4376b6
mov rcx, rsi
call fcn.00412ba4
mov rcx, rsi
call sub.msvcrt.dll_free
cmp ebx, r15d
jne 0x437697
mov rcx, rbp
call sub.msvcrt.dll_free
nop
mov rcx, r14
call sub.msvcrt.dll_free
nop
movsxd rbx, dword [rsp + 0x28]
mov rdi, rbx
cmp ebx, r15d
je 0x437708
shl rdi, 3
add ebx, r13d
sub rdi, 8
mov rax, qword [rsp + 0x20]
mov rsi, qword [rdi + rax]
cmp rsi, r15
je 0x437703
mov rcx, qword [rsi]
call sub.msvcrt.dll_free
mov rcx, rsi
call sub.msvcrt.dll_free
cmp ebx, r15d
jne 0x4376de
mov edi, 0x80004001
jmp 0x437ae9
test ebp, ebp
je 0x437afa
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.00402f74
nop
lea r8, [rsp + 0x120]
lea rdx, [rsp + 0x60]
mov rcx, qword [r12 + rsi]
call fcn.0040c72c
mov r12d, eax
test eax, eax
jne 0x4378ce
mov rcx, qword [rsp + 0x120]
test rcx, rcx
je 0x437970
mov rsi, qword [rsi]
mov qword [rsp + 0x128], 0
mov rax, qword [rcx]
lea r8, [rsp + 0x128]
lea rdx, [0x004d9200]
call qword [rax]
mov rcx, qword [rsp + 0x128]
test rcx, rcx
je 0x4377ca
xor r8d, r8d
mov rdx, rcx
mov rcx, rsi
call fcn.0040fe0c
mov r12d, eax
test eax, eax
jne 0x437994
mov rcx, qword [rsp + 0x128]
test rcx, rcx
je 0x4377d5
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 0x437a4a
mov ecx, 0x120
call fcn.00402388
mov rsi, rax
mov qword [rsp + 0x50], rax
test rax, rax
je 0x437819
mov qword [rax], 0
lea rcx, [rax + 8]
call fcn.00402f74
nop
jmp 0x43781b
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 0x437846
mov rax, qword [r12]
mov rcx, r12
call qword [rax + VariantCopy]
mov rcx, qword [rsi]
test rcx, rcx
je 0x437854
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rsi], r12
lea rcx, [rsi + 8]
lea rdx, [rsp + 0x60]
call fcn.00403088
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 0x437873
mov rcx, qword [rsp + 0x60]
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0x120]
test rcx, rcx
je 0x4378a7
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 0x437730
jmp 0x437afa
mov rcx, qword [rsp + 0x60]
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0x120]
test rcx, rcx
je 0x4378ed
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
movsxd rax, ebx
test ebx, ebx
je 0x43791b
lea rsi, [rdi + rax*8]
add ebx, r13d
sub rsi, 8
mov rbp, qword [rsi]
test rbp, rbp
je 0x437917
mov rcx, rbp
call fcn.00412ba4
mov rcx, rbp
call sub.msvcrt.dll_free
test ebx, ebx
jne 0x4378f8
mov rcx, rdi
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0x30]
call sub.msvcrt.dll_free
nop
movsxd rbx, dword [rsp + 0x28]
mov rdi, rbx
test ebx, ebx
je 0x437968
shl rdi, 3
add ebx, r13d
sub rdi, 8
mov rax, qword [rsp + 0x20]
mov rsi, qword [rdi + rax]
test rsi, rsi
je 0x437964
mov rcx, qword [rsi]
call sub.msvcrt.dll_free
mov rcx, rsi
call sub.msvcrt.dll_free
test ebx, ebx
jne 0x43793f
mov edi, r12d
jmp 0x437ae9
lea rax, str.Cant_create_hasher
mov qword [rsp + 0x128], rax
lea rdx, [0x00507e50]
lea rcx, [rsp + 0x128]
call sub.msvcrt.dll__CxxThrowException
int3
mov rcx, qword [rsp + 0x128]
test rcx, rcx
je 0x4379a8
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov rcx, qword [rsp + 0x60]
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0x120]
test rcx, rcx
je 0x4379c7
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
movsxd rax, ebx
test ebx, ebx
je 0x4379f5
lea rsi, [rdi + rax*8]
add ebx, r13d
sub rsi, 8
mov rbp, qword [rsi]
test rbp, rbp
je 0x4379f1
mov rcx, rbp
call fcn.00412ba4
mov rcx, rbp
call sub.msvcrt.dll_free
test ebx, ebx
jne 0x4379d2
mov rcx, rdi
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0x30]
call sub.msvcrt.dll_free
nop
movsxd rbx, dword [rsp + 0x28]
mov rdi, rbx
test ebx, ebx
je 0x437a42
shl rdi, 3
add ebx, r13d
sub rdi, 8
mov rax, qword [rsp + 0x20]
mov rsi, qword [rdi + rax]
test rsi, rsi
je 0x437a3e
mov rcx, qword [rsi]
call sub.msvcrt.dll_free
mov rcx, rsi
call sub.msvcrt.dll_free
test ebx, ebx
jne 0x437a19
mov edi, r12d
jmp 0x437ae9
mov rcx, qword [rsp + 0x60]
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0x120]
test rcx, rcx
je 0x437a69
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
movsxd rax, ebx
test ebx, ebx
je 0x437a97
lea rsi, [rdi + rax*8]
add ebx, r13d
sub rsi, 8
mov rbp, qword [rsi]
test rbp, rbp
je 0x437a93
mov rcx, rbp
call fcn.00412ba4
mov rcx, rbp
call sub.msvcrt.dll_free
test ebx, ebx
jne 0x437a74
mov rcx, rdi
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0x30]
call sub.msvcrt.dll_free
nop
movsxd rbx, dword [rsp + 0x28]
mov rdi, rbx
test ebx, ebx
je 0x437ae4
shl rdi, 3
add ebx, r13d
sub rdi, 8
mov rax, qword [rsp + 0x20]
mov rsi, qword [rdi + rax]
test rsi, rsi
je 0x437ae0
mov rcx, qword [rsi]
call sub.msvcrt.dll_free
mov rcx, rsi
call sub.msvcrt.dll_free
test ebx, ebx
jne 0x437abb
mov edi, 0x80004001
mov rcx, qword [rsp + 0x20]
call sub.msvcrt.dll_free
mov eax, edi
jmp 0x437b81
movsxd rax, ebx
test ebx, ebx
je 0x437b28
lea rsi, [rdi + rax*8]
add ebx, r13d
sub rsi, 8
mov rbp, qword [rsi]
test rbp, rbp
je 0x437b24
mov rcx, rbp
call fcn.00412ba4
mov rcx, rbp
call sub.msvcrt.dll_free
test ebx, ebx
jne 0x437b05
mov rcx, rdi
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0x30]
call sub.msvcrt.dll_free
nop
movsxd rbx, dword [rsp + 0x28]
mov rdi, rbx
test ebx, ebx
je 0x437b75
shl rdi, 3
add ebx, r13d
sub rdi, 8
mov rax, qword [rsp + 0x20]
mov rsi, qword [rdi + rax]
test rsi, rsi
je 0x437b71
mov rcx, qword [rsi]
call sub.msvcrt.dll_free
mov rcx, rsi
call sub.msvcrt.dll_free
test ebx, ebx
jne 0x437b4c
mov rcx, qword [rsp + 0x20]
call sub.msvcrt.dll_free
xor eax, eax
add rsp, 0xc8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret