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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x140
mov ecx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
movzx eax, byte [0x446a40]
test al, al
je 0x407378
mov esi, dword [0x446e64]
mov ebx, dword [0x446e60]
cmp edi, ecx
je 0x40695a
lea eax, [edi + 8]
lea ecx, [edi + 0xc]
push ecx
push eax
push edi
call fcn.004079d0
add esp, 0xc
mov dword [esp + 0x58], eax
lea eax, [edi + 0x10]
cmp eax, dword [ebp + 0xc]
je 0x406961
lea ecx, [edi + 0x18]
lea edx, [edi + 0x1c]
push edx
push ecx
push eax
call fcn.004079d0
add esp, 0xc
mov dword [esp + 0x5c], eax
lea eax, [edi + 0x20]
cmp eax, dword [ebp + 0xc]
je 0x40696b
lea ecx, [edi + 0x28]
lea edx, [edi + 0x2c]
push edx
push ecx
push eax
call fcn.004079d0
add esp, 0xc
mov dword [esp + 0x60], eax
lea eax, [edi + 0x30]
cmp eax, dword [ebp + 0xc]
je 0x406975
lea ecx, [edi + 0x38]
lea edx, [edi + 0x3c]
push edx
push ecx
push eax
call fcn.004079d0
add esp, 0xc
mov dword [esp + 0x64], eax
lea eax, [edi + 0x40]
cmp eax, dword [ebp + 0xc]
je 0x40697f
lea ecx, [edi + 0x48]
lea edx, [edi + 0x4c]
push edx
push ecx
push eax
call fcn.004079d0
add esp, 0xc
mov dword [esp + 0x68], eax
lea eax, [edi + 0x50]
cmp eax, dword [ebp + 0xc]
je 0x406989
lea ecx, [edi + 0x58]
lea edx, [edi + 0x5c]
push edx
push ecx
push eax
call fcn.004079d0
add esp, 0xc
mov dword [esp + 0x6c], eax
lea eax, [edi + 0x60]
cmp eax, dword [ebp + 0xc]
je 0x406993
lea ecx, [edi + 0x68]
lea edx, [edi + 0x6c]
push edx
push ecx
push eax
call fcn.004079d0
add esp, 0xc
mov dword [esp + 0x70], eax
lea eax, [edi + 0x70]
cmp eax, dword [ebp + 0xc]
je 0x40699d
lea ecx, [edi + 0x78]
lea edx, [edi + 0x7c]
push edx
push ecx
push eax
call fcn.004079d0
add esp, 0xc
mov dword [esp + 0x74], eax
lea eax, [edi + 0x80]
cmp eax, dword [ebp + 0xc]
je 0x4069a7
lea ecx, [edi + 0x88]
lea edx, [edi + 0x8c]
push edx
push ecx
push eax
call fcn.004079d0
add esp, 0xc
mov dword [esp + 0x78], eax
lea eax, [edi + 0x90]
cmp eax, dword [ebp + 0xc]
je 0x40715e
lea ecx, [edi + 0x98]
lea edx, [edi + 0x9c]
push edx
push ecx
push eax
call fcn.004079d0
add esp, 0xc
mov dword [esp + 0x7c], eax
lea eax, [edi + 0xa0]
cmp eax, dword [ebp + 0xc]
je 0x407168
lea ecx, [edi + 0xa8]
lea edx, [edi + 0xac]
push edx
push ecx
push eax
call fcn.004079d0
add esp, 0xc
mov dword [esp + 0x80], eax
lea eax, [edi + 0xb0]
cmp eax, dword [ebp + 0xc]
je 0x407172
lea ecx, [edi + 0xb8]
lea edx, [edi + 0xbc]
push edx
push ecx
push eax
call fcn.004079d0
add esp, 0xc
mov dword [esp + 0x84], eax
lea eax, [edi + 0xc0]
cmp eax, dword [ebp + 0xc]
je 0x40717c
lea ecx, [edi + 0xc8]
lea edx, [edi + 0xcc]
push edx
push ecx
push eax
call fcn.004079d0
add esp, 0xc
mov dword [esp + 0x88], eax
lea eax, [edi + 0xd0]
cmp eax, dword [ebp + 0xc]
je 0x407186
lea ecx, [edi + 0xd8]
lea edx, [edi + 0xdc]
push edx
push ecx
push eax
call fcn.004079d0
add esp, 0xc
mov dword [esp + 0x8c], eax
lea eax, [edi + 0xe0]
cmp eax, dword [ebp + 0xc]
je 0x407190
lea ecx, [edi + 0xe8]
lea edx, [edi + 0xec]
push edx
push ecx
push eax
call fcn.004079d0
add esp, 0xc
mov dword [esp + 0x90], eax
lea eax, [edi + 0xf0]
cmp eax, dword [ebp + 0xc]
je 0x407354
lea ecx, [edi + 0xf8]
lea edx, [edi + 0xfc]
push edx
push ecx
push eax
call fcn.004079d0
add esp, 0xc
mov dword [esp + 0x94], eax
lea ecx, [edi + 0x100]
cmp ecx, dword [ebp + 0xc]
je 0x40735b
lea eax, [edi + 0x108]
add edi, 0x10c
push edi
push eax
push ecx
mov dword [esp + 0x40], ecx
call fcn.004079d0
add esp, 0xc
mov eax, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x88]
mov dword [esp + 0x48], edx
add ecx, edx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x44], ecx
adc eax, ecx
mov dword [esp + 4], eax
mov eax, ebx
mov ecx, 0xbe98f273
mul ecx
mov edi, eax
imul eax, ebx, 0xb492b66f
mov dword [esp + 0x18], eax
add edx, eax
mov ecx, esi
imul esi, esi, 0xbe98f273
add esi, edx
mov eax, ecx
shr eax, 0xf
xor eax, ebx
mov dword [esp + 8], eax
xor edi, eax
mov eax, edi
mov edx, 0xeb382d69
mul edx
mov dword [esp + 0xc], eax
imul eax, edi, 0x9ddfea08
add eax, edx
mov edx, ecx
mov dword [esp + 0x10], ecx
xor esi, ecx
imul ecx, esi, 0xeb382d69
add ecx, eax
xor ecx, edx
imul edi, ecx, 0xeb382d69
shr ecx, 0xf
mov esi, dword [esp + 0xc]
xor esi, ebx
xor esi, ecx
mov eax, esi
mov ecx, 0xeb382d69
mul ecx
mov ecx, edx
add ecx, edi
imul edx, esi, 0x9ddfea08
add ecx, edx
imul esi, ecx, 0xeb382d69
shr ecx, 0xf
xor ecx, eax
mov eax, ecx
mov edx, 0xeb382d69
mul edx
mov dword [esp + 0x14], eax
add edx, esi
mov esi, edx
mov edi, ebx
xor edi, 0xbe98f273
mov dword [esp + 0xc], edi
mov eax, edi
mov edx, 0xeb382d69
mul edx
imul ecx, ecx, 0x9ddfea08
add esi, ecx
mov dword [esp + 0x3c], esi
imul esi, edi, 0x9ddfea08
add esi, edx
mov ecx, dword [esp + 0x10]
xor ecx, 0xb492b66f
mov dword [esp + 0x30], ecx
imul ecx, ecx, 0xeb382d69
add ecx, esi
mov esi, ecx
shr esi, 0xf
xor esi, eax
xor esi, 0xbe98f273
xor ecx, 0xb492b66f
mov eax, esi
mov edi, 0xeb382d69
mul edi
imul ecx, ecx, 0xeb382d69
add ecx, edx
imul edx, esi, 0x9ddfea08
add ecx, edx
imul esi, ecx, 0xeb382d69
shr ecx, 0xf
xor ecx, eax
mov eax, ecx
mul edi
mov edi, edx
add edi, esi
imul ecx, ecx, 0x9ddfea08
add edi, ecx
add eax, dword [esp + 8]
adc edi, dword [esp + 0x10]
mov ecx, edi
shld ecx, eax, 0x1f
shrd edi, eax, 1
mov eax, edi
mov edx, 0xbe98f273
mul edx
imul esi, edi, 0xb492b66f
add esi, edx
imul ecx, ecx, 0xbe98f273
add ecx, esi
mov dword [esp + 0xa0], eax
mov edi, eax
add edi, dword [esp + 0x14]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x9c], ecx
adc esi, ecx
add edi, dword [esp + 0x78]
adc esi, dword [esp + 0x7c]
mov dword [esp + 0x24], esi
mov edx, dword [esp + 0x28]
add edx, edi
mov dword [esp + 0x4c], edi
mov ecx, dword [esp + 4]
adc ecx, esi
mov esi, dword [esp + 0x90]
mov dword [esp + 0x38], esi
mov eax, edx
add eax, esi
mov dword [esp + 0x50], eax
mov esi, dword [esp + 0x94]
mov dword [esp + 0x20], esi
mov eax, ecx
adc eax, esi
mov dword [esp + 0x28], eax
mov eax, ecx
shld eax, edx, 0x14
shrd ecx, edx, 0xc
add ecx, edi
mov dword [esp + 4], ecx
adc eax, dword [esp + 0x24]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x30]
mov eax, ecx
mov edi, dword [esp + 0xc]
shld eax, edi, 0xf
mov dword [esp + 0x54], eax
shld edi, ecx, 0xf
mov dword [esp + 0xc], edi
add dword [esp + 0x1c], edi
adc dword [esp + 0x2c], eax
mov eax, 0xbe98f273
lea esi, [eax + 1]
mov eax, ebx
mul esi
mov ecx, edx
mov edx, dword [esp + 0x10]
imul edx, esi
add ecx, dword [esp + 0x18]
add ecx, edx
add eax, dword [esp + 0x48]
adc ecx, dword [esp + 0x44]
mov edi, ecx
shld edi, eax, 0x16
shrd ecx, eax, 0xa
mov eax, ecx
mov edx, 0xbe98f273
mul edx
mov esi, eax
imul eax, ecx, 0xb492b66f
add eax, edx
imul ecx, edi, 0xbe98f273
add ecx, eax
add esi, dword [esp + 0x1c]
adc ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x44], esi
mov eax, esi
add eax, edx
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x18], esi
mov dword [esp + 0x48], ecx
mov edx, ecx
adc edx, esi
add eax, dword [esp + 0x4c]
adc edx, dword [esp + 0x24]
add eax, dword [esp + 0x38]
adc edx, dword [esp + 0x20]
mov ecx, eax
shld ecx, edx, 0xb
shld edx, eax, 0xb
add edx, dword [esp + 4]
mov dword [esp + 0x24], edx
adc ecx, dword [esp + 0x40]
mov dword [esp + 0x2c], ecx
mov ecx, 0x822d9fa9
mov eax, ebx
mul ecx
imul ecx, ebx, 0x927126fd
add ecx, edx
imul edx, dword [esp + 0x10], 0x822d9fa9
add edx, ecx
mov edi, eax
add edi, dword [esp + 0x58]
mov dword [esp + 4], edi
adc edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x4c], eax
add edi, eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x98], eax
mov ecx, edx
mov dword [esp + 0x20], edx
adc ecx, eax
add edi, dword [esp + 0x1c]
adc ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x18], eax
mov esi, edi
add esi, eax
mov dword [esp + 0x40], esi
mov eax, dword [esp + 0x74]
mov dword [esp + 0x38], eax
mov esi, ecx
adc esi, eax
mov dword [esp + 0x30], esi
mov eax, ecx
shld eax, edi, 0x14
shrd ecx, edi, 0xc
add ecx, dword [esp + 4]
adc eax, edx
mov dword [esp + 0x1c], eax
mov edi, dword [esp + 0xc]
add edi, ebx
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x54]
adc esi, ebx
add edi, dword [esp + 0x4c]
mov eax, edi
adc esi, dword [esp + 0x98]
mov edi, esi
shld edi, eax, 0x1b
shrd esi, eax, 5
mov eax, esi
mov edx, 0xbe98f273
mul edx
imul esi, esi, 0xb492b66f
add esi, edx
imul edx, edi, 0xbe98f273
add edx, esi
xor edx, dword [esp + 0x3c]
xor eax, dword [esp + 0x14]
mov dword [esp + 0xc], eax
mov edi, dword [esp + 8]
add edi, eax
mov dword [esp + 0x14], edx
mov esi, ebx
adc esi, edx
add edi, dword [esp + 4]
adc esi, dword [esp + 0x20]
add edi, dword [esp + 0x18]
adc esi, dword [esp + 0x38]
mov eax, edi
shld eax, esi, 0xb
shld esi, edi, 0xb
add esi, ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x10], esi
adc eax, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
mov dword [esp + 0xa4], 0x40
mov edx, ecx
jmp 0x406c6a
xor eax, eax
jmp 0x407360
mov eax, 4
jmp 0x407360
mov eax, 8
jmp 0x407360
mov eax, 0xc
jmp 0x407360
mov eax, 0x10
jmp 0x407360
mov eax, 0x14
jmp 0x407360
mov eax, 0x18
jmp 0x407360
mov eax, 0x1c
jmp 0x407360
mov eax, 0x20
jmp 0x407360
mov dword [esp + 0x1c], 0x40
mov esi, dword [esp + 0x44]
mov edx, esi
add edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x48]
mov eax, ecx
adc eax, dword [esp + 0x30]
add edx, dword [esp + 0xa0]
adc eax, dword [esp + 0x9c]
mov edi, dword [esp + 0x60]
mov dword [esp + 0x20], edi
add edx, edi
mov edi, dword [esp + 0x64]
mov dword [esp + 8], edi
adc eax, edi
mov edi, eax
shld edi, edx, 0x1b
shrd eax, edx, 5
mov ebx, eax
mov edx, 0xb492b66f
imul ebx, edx
mov edx, 0xbe98f273
mul edx
mov dword [esp + 0xc], eax
add edx, ebx
mov eax, 0xbe98f273
imul edi, eax
add edi, edx
add esi, dword [esp + 0x10]
adc ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x88]
mov dword [esp + 0x34], eax
add esi, eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x3c], eax
adc ecx, eax
mov ebx, ecx
shld ebx, esi, 0x16
shrd ecx, esi, 0xa
mov esi, ecx
mov eax, 0xb492b66f
imul esi, eax
mov eax, ecx
mov ecx, 0xbe98f273
mul ecx
add edx, esi
imul ebx, ecx
add ebx, edx
xor edi, dword [esp + 0x2c]
mov dword [esp + 0x14], edi
mov ecx, dword [esp + 0xc]
xor ecx, dword [esp + 0x24]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x4c], ecx
mov esi, dword [esp + 0x40]
add esi, ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x98], ecx
mov edx, dword [esp + 0x30]
adc edx, ecx
mov ecx, esi
add ecx, eax
mov dword [esp + 0x44], ecx
mov eax, edx
adc eax, ebx
mov dword [esp + 0x48], eax
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x38]
add eax, ebx
mov ecx, dword [esp + 0x54]
adc ecx, dword [esp + 0x28]
mov esi, ecx
shld esi, eax, 0x1f
shrd ecx, eax, 1
mov eax, ecx
mov edx, 0xbe98f273
mul edx
mov dword [esp + 0x54], ecx
mov edi, 0xb492b66f
imul ecx, edi
add edx, ecx
mov dword [esp + 0x38], esi
mov ecx, 0xbe98f273
imul esi, ecx
add esi, edx
mov dword [esp + 0x9c], esi
mov dword [esp + 0xa0], eax
mov esi, dword [esp + 0x10]
mov eax, esi
mul ecx
mov edi, eax
mov eax, 0xb492b66f
imul esi, eax
add esi, edx
mov eax, dword [esp + 0x18]
imul eax, ecx
add eax, esi
add ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x28]
adc ecx, dword [esp + 0x14]
add edi, dword [esp + 0x58]
adc eax, dword [esp + 0x5c]
add ebx, edi
mov dword [esp + 0x10], edi
adc ecx, eax
mov edx, dword [esp + 0x70]
mov dword [esp + 0x30], edx
add ebx, edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x50], edx
adc ecx, edx
mov edx, ebx
shld edx, ecx, 0xb
mov dword [esp + 0x18], edx
shld ecx, ebx, 0xb
mov dword [esp + 0x28], ecx
mov esi, dword [esp + 0x20]
add esi, edi
mov ecx, dword [esp + 8]
adc ecx, eax
mov ebx, dword [esp + 0x68]
add esi, ebx
mov edx, dword [esp + 0x6c]
adc ecx, edx
mov dword [esp + 8], ecx
mov edi, esi
shld edi, ecx, 0x14
mov ecx, dword [esp + 8]
shld ecx, esi, 0x14
add edi, dword [esp + 0x10]
adc eax, ecx
add edi, dword [esp + 0x28]
mov dword [esp + 0x10], edi
adc eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
mov eax, esi
add eax, dword [esp + 0x30]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 8]
adc eax, dword [esp + 0x50]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xa0]
add eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
adc ecx, dword [esp + 0x9c]
add ebx, dword [esp + 0x44]
adc edx, dword [esp + 0x48]
add eax, dword [esp + 0x78]
adc ecx, dword [esp + 0x7c]
mov dword [esp + 0x2c], ecx
add ebx, eax
adc edx, ecx
mov ecx, dword [esp + 0x90]
mov dword [esp + 8], ecx
add ebx, ecx
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x28], ecx
adc edx, ecx
mov ecx, ebx
shld ecx, edx, 0xb
mov dword [esp + 0x24], ecx
shld edx, ebx, 0xb
mov edi, dword [esp + 0x4c]
add edi, dword [esp + 0x34]
mov esi, dword [esp + 0x98]
adc esi, dword [esp + 0x3c]
add edi, eax
adc esi, dword [esp + 0x2c]
mov ecx, edi
shld ecx, esi, 0x14
mov ebx, esi
shld ebx, edi, 0x14
add edx, eax
mov eax, dword [esp + 0x2c]
adc eax, dword [esp + 0x24]
add edx, ecx
mov dword [esp + 0x24], edx
adc eax, ebx
mov dword [esp + 0x2c], eax
mov eax, edi
add eax, dword [esp + 8]
mov dword [esp + 0x50], eax
adc esi, dword [esp + 0x28]
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x1c]
add dword [esp + 0xa4], eax
mov edx, dword [esp + 4]
mov ecx, edx
cmp edx, dword [ebp + 0xc]
je 0x40719a
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x38], eax
xor esi, esi
mov ebx, 0xffffffff
mov eax, 3
lea ecx, [esp + 0x58]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x14], 0x3f
mov dword [esp + 8], ebx
mov dword [esp + 4], edx
mov edi, esi
mov dword [esp + 0xc], eax
xorps xmm0, xmm0
movaps xmmword [esp + 0x110], xmm0
movaps xmmword [esp + 0x100], xmm0
movaps xmmword [esp + 0xf0], xmm0
movaps xmmword [esp + 0xe0], xmm0
movaps xmmword [esp + 0xd0], xmm0
movaps xmmword [esp + 0xc0], xmm0
movaps xmmword [esp + 0xb0], xmm0
mov dword [esp + 0x124], 0
mov dword [esp + 0x120], 0
movzx eax, byte [0x446a40]
test al, al
je 0x406dd6
mov eax, dword [0x446e60]
mov ecx, dword [0x446e64]
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x128], eax
mov esi, dword [esp + 0x34]
movsd xmm0, qword [esi + edi*4]
movsd qword [esp + 0xa8], xmm0
sub esp, 8
movsd qword [esp], xmm0
call fcn.0043bb58
add esp, 8
mov dword [esp + 0xb0], eax
mov eax, dword [esi + edi*4 + 8]
mov dword [esp + 0xb4], eax
mov dword [esp + 0xa8], 0
lea ebx, [esp + 0xb0]
mov ecx, ebx
push dword [esi + edi*4 + 0xc]
lea esi, [esp + 0xf4]
push esi
lea eax, [esp + 0xc0]
push eax
lea eax, [esp + 0xb4]
push eax
call fcn.00407b10
mov ecx, ebx
push esi
push eax
push dword [esp + 0xb0]
call fcn.00408220
cmp edi, 0x3c
ja 0x4069b1
lea esi, [edi + 4]
mov dword [esp + edi + 0x58], eax
mov edx, dword [esp + 4]
add edx, 0x10
add dword [esp + 0x14], 0xfffffffc
mov ebx, dword [esp + 8]
add ebx, 4
add dword [esp + 0x3c], 4
mov eax, dword [esp + 0xc]
add eax, 4
mov ecx, dword [ebp + 0xc]
cmp edx, ecx
jne 0x406c9a
jmp 0x406e27
push 0x446a40
call sub.libc.dll___cxa_guard_acquire
add esp, 4
test eax, eax
je 0x406d08
mov ecx, dword [sym.imp.libLLVM_17.dll_llvm::hashing::detail::fixed_seed_override]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, eax
or edx, ecx
mov edx, 0xff51afd7
cmove ecx, edx
mov dword [0x446e64], ecx
mov ecx, 0xed558ccd
cmove eax, ecx
mov dword [0x446e60], eax
push 0x446a40
call sub.libc.dll___cxa_guard_release
add esp, 4
jmp 0x406d08
test esi, 0x7fffffbc
mov dword [esp + 0x1c], esi
je 0x407155
mov edx, 0x40
sub edx, esi
mov eax, esi
cmp esi, edx
jne 0x406f8e
mov edx, 0x3f
sub edx, esi
lea eax, [esi - 1]
cmp edx, eax
mov dword [esp + 4], eax
mov dword [esp + 0x20], edx
cmovb eax, edx
mov dword [esp + 8], eax
lea eax, [esp + esi + 0x58]
mov dword [esp + 0x34], eax
mov eax, esi
lea edx, [esp + 0x58]
cmp dword [esp + 8], 7
jb 0x407132
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x20]
cmp edx, eax
cmovb eax, edx
mov dword [esp + 4], eax
mov edx, dword [esp + 0x14]
cmp edx, ebx
mov eax, ebx
cmovb eax, edx
lea edx, [esp + 0x58]
add eax, edx
add eax, esi
inc eax
cmp edx, eax
jae 0x406ec5
lea eax, [esp + 0x59]
add dword [esp + 4], eax
mov eax, esi
lea edx, [esp + 0x58]
mov esi, dword [esp + 4]
cmp dword [esp + 0x34], esi
mov esi, dword [esp + 0x1c]
jb 0x407132
mov eax, dword [esp + 8]
lea edx, [eax + 1]
mov dword [esp + 4], 0
cmp eax, 0xf
mov dword [esp + 0x20], edx
jb 0x4070bf
and edx, 0x7ffffff0
movups xmm0, xmmword [esp + 0x58]
movups xmm1, xmmword [esp + esi + 0x58]
movups xmmword [esp + 0x58], xmm1
movups xmmword [esp + esi + 0x58], xmm0
cmp edx, 0x10
je 0x406f52
movups xmm0, xmmword [esp + 0x68]
movups xmm1, xmmword [esp + esi + 0x68]
movups xmmword [esp + 0x68], xmm1
movups xmmword [esp + esi + 0x68], xmm0
cmp edx, 0x20
je 0x406f52
movups xmm0, xmmword [esp + 0x78]
movups xmm1, xmmword [esp + esi + 0x78]
movups xmmword [esp + 0x78], xmm1
movups xmmword [esp + esi + 0x78], xmm0
cmp edx, 0x30
je 0x406f52
movups xmm0, xmmword [esp + 0x88]
movups xmm1, xmmword [esp + esi + 0x88]
movups xmmword [esp + 0x88], xmm1
movups xmmword [esp + esi + 0x88], xmm0
mov eax, edx
mov dword [esp + 4], edx
mov eax, dword [esp + 0x20]
cmp eax, edx
je 0x407155
mov edx, eax
cmp dword [esp + 0x14], ebx
mov eax, ebx
cmovb eax, dword [esp + 0x14]
test dl, 8
jne 0x4070bf
mov edx, dword [esp + 4]
add edx, esp
add edx, 0x58
inc eax
and eax, 0xfffffff0
add eax, esi
jmp 0x407132
mov edi, edx
cdq
idiv edi
mov eax, edi
test edx, edx
jne 0x406f8e
test eax, eax
mov edx, dword [esp + 0x10]
je 0x407007
lea edi, [esp + eax]
add edi, 0x58
test al, 1
mov dword [esp + 0xc], eax
je 0x407000
dec edi
movzx edx, byte [esp + eax + 0x57]
mov byte [esp + 8], dl
lea edx, [esp + 0x57]
lea ebx, [edx + esi]
add ebx, eax
mov edx, 0xffffffc0
add edx, esi
mov dword [esp + 4], edx
mov eax, edi
mov edx, edi
mov edi, ebx
movzx ebx, byte [ebx]
mov byte [edx], bl
lea edx, [esp + 0x98]
sub edx, edi
mov ebx, dword [esp + 4]
add ebx, edi
cmp esi, edx
lea edx, [edi + esi]
cmovl ebx, edx
cmp ebx, eax
jne 0x406fcf
movzx edx, byte [esp + 8]
mov byte [edi], dl
mov edx, dword [esp + 0x10]
mov edi, eax
cmp dword [esp + 0xc], 1
jne 0x407014
mov dword [esp + 4], ecx
mov dword [esp + 0x10], edx
jmp 0x4069b9
mov eax, 0xffffffc0
add eax, esi
mov dword [esp + 4], eax
lea ebx, [edi - 1]
movzx eax, byte [edi - 1]
mov byte [esp + 8], al
mov edx, dword [esp + 0x1c]
mov dword [esp + 0xc], edi
add edi, edx
dec edi
mov esi, ebx
nop word [eax + eax]
mov eax, esi
mov esi, edi
movzx ecx, byte [edi]
mov byte [eax], cl
lea eax, [esp + 0x98]
sub eax, edi
mov ecx, dword [esp + 4]
add edi, ecx
cmp edx, eax
lea eax, [esi + edx]
cmovl edi, eax
cmp edi, ebx
jne 0x407040
movzx eax, byte [esp + 8]
mov byte [esi], al
mov eax, dword [esp + 0xc]
lea esi, [eax - 2]
movzx ebx, byte [eax - 2]
lea edi, [eax + edx]
add edi, 0xfffffffe
mov eax, esi
nop
mov ecx, eax
mov eax, edi
mov bh, byte [edi]
mov byte [ecx], bh
lea ecx, [esp + 0x98]
sub ecx, edi
mov edi, dword [esp + 4]
add edi, eax
cmp edx, ecx
lea ecx, [eax + edx]
cmovl edi, ecx
cmp edi, esi
jne 0x407080
mov byte [eax], bl
mov edi, esi
lea eax, [esp + 0x58]
cmp esi, eax
jne 0x40701f
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
jmp 0x4069b9
and edx, 0x7ffffff8
mov dword [esp + 8], edx
xor ecx, ecx
mov eax, dword [esp + 0x14]
cmp eax, ebx
cmovb ebx, eax
mov eax, ebx
mov ebx, 0x3b
sub ebx, edi
inc eax
and eax, 0xfffffff8
add eax, esi
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 4]
add edi, esi
mov edx, dword [esp + 0xc]
cmp ebx, edx
cmovae ebx, edx
mov edx, dword [esp + 8]
add edx, esp
add edx, 0x58
inc ebx
and ebx, 0xfffffff8
sub ebx, esi
add esi, esp
add esi, 0x58
movsd xmm0, qword [esi + ecx]
movsd xmm1, qword [edi + ecx]
movsd qword [esi + ecx], xmm1
movsd qword [edi + ecx], xmm0
add ecx, 8
cmp ebx, ecx
jne 0x40710a
mov ecx, dword [esp + 8]
cmp dword [esp + 0x20], ecx
mov ecx, dword [ebp + 0xc]
je 0x407155
inc edx
mov edi, dword [esp + 0x34]
movzx ebx, byte [edx - 1]
mov bh, byte [esp + eax + 0x58]
mov byte [edx - 1], bh
mov byte [esp + eax + 0x58], bl
cmp edx, edi
je 0x407155
lea esi, [eax + 1]
inc edx
cmp eax, 0x3f
mov eax, esi
jne 0x407137
mov dword [esp + 4], ecx
jmp 0x4069b9
mov eax, 0x24
jmp 0x407360
mov eax, 0x28
jmp 0x407360
mov eax, 0x2c
jmp 0x407360
mov eax, 0x30
jmp 0x407360
mov eax, 0x34
jmp 0x407360
mov eax, 0x38
jmp 0x407360
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x40]
xor edi, esi
mov eax, edi
mov ebx, 0xeb382d69
mul ebx
mov ecx, eax
mov eax, edi
mov edi, 0x9ddfea08
imul eax, edi
add edx, eax
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
xor eax, edi
imul eax, ebx
add eax, edx
xor ecx, esi
xor edi, eax
shr eax, 0xf
xor ecx, eax
mov eax, ecx
mul ebx
mov esi, eax
imul edi, ebx
add edi, edx
mov eax, 0x9ddfea08
imul ecx, eax
add edi, ecx
mov eax, edi
shr eax, 0xf
xor esi, eax
mov eax, esi
mov ecx, 0xeb382d69
mul ecx
mov dword [esp + 8], eax
imul edi, ecx
add edi, edx
mov ebx, dword [esp + 0x48]
mov ecx, ebx
shr ecx, 0xf
xor ecx, dword [esp + 0x44]
mov eax, ecx
mov edx, 0xbe98f273
mul edx
mov dword [esp + 4], eax
mov eax, 0x9ddfea08
imul esi, eax
add edi, esi
mov eax, 0xbe98f273
imul ebx, eax
add ebx, edx
mov eax, 0xb492b66f
imul ecx, eax
add ebx, ecx
mov eax, dword [esp + 4]
add eax, dword [esp + 0xc]
adc ebx, dword [esp + 0x14]
add eax, dword [esp + 8]
mov dword [esp + 4], eax
adc ebx, edi
mov esi, dword [esp + 0x10]
xor esi, dword [esp + 0x24]
mov eax, esi
mov ecx, 0xeb382d69
mul ecx
mov ecx, eax
mov eax, esi
mov esi, 0x9ddfea08
imul eax, esi
add edx, eax
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
xor eax, edi
mov esi, 0xeb382d69
imul eax, esi
add eax, edx
xor ecx, dword [esp + 0x24]
xor edi, eax
shr eax, 0xf
xor ecx, eax
mov eax, ecx
mul esi
mov esi, eax
mov eax, 0xeb382d69
imul edi, eax
add edi, edx
mov eax, 0x9ddfea08
imul ecx, eax
add edi, ecx
mov eax, edi
shr eax, 0xf
xor esi, eax
mov eax, esi
mov ecx, 0xeb382d69
mul ecx
mov dword [esp + 8], eax
imul edi, ecx
add edi, edx
mov eax, 0x9ddfea08
imul esi, eax
add edi, esi
mov esi, dword [esp + 0x54]
add esi, dword [esp + 0xa4]
mov ecx, dword [esp + 0x38]
adc ecx, 0
mov eax, esi
mov edx, 0xbe98f273
mul edx
mov dword [esp + 0xc], eax
mov eax, 0xb492b66f
imul eax, esi
add edx, eax
mov eax, 0xbe98f273
imul ecx, eax
add ecx, edx
mov edx, dword [esp + 0xc]
add edx, dword [esp + 8]
mov dword [esp + 0xc], edx
adc ecx, edi
mov eax, dword [esp + 4]
xor eax, edx
mov esi, eax
mov edx, 0xeb382d69
mul edx
mov edi, 0x9ddfea08
imul esi, edi
add edx, esi
xor ebx, ecx
mov esi, 0xeb382d69
imul ebx, esi
add ebx, edx
xor eax, dword [esp + 0xc]
xor ecx, ebx
shr ebx, 0xf
xor eax, ebx
imul edi, eax
mul esi
imul ecx, esi
add ecx, edx
add ecx, edi
shr ecx, 0xf
xor ecx, eax
imul eax, ecx, 0xeb382d69
jmp 0x407370
mov eax, 0x3c
jmp 0x407360
mov eax, 0x40
lea ecx, [esp + 0x58]
push esi
push ebx
push eax
push ecx
call fcn.004073d0
add esp, 0x10
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x446a40
call sub.libc.dll___cxa_guard_acquire
mov ecx, dword [ebp + 0xc]
add esp, 4
test eax, eax
je 0x4062f4
mov eax, dword [sym.imp.libLLVM_17.dll_llvm::hashing::detail::fixed_seed_override]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov edx, ecx
or edx, eax
mov edx, 0xed558ccd
cmovne edx, ecx
mov ecx, 0xff51afd7
cmovne ecx, eax
mov dword [0x446e64], ecx
mov dword [0x446e60], edx
push 0x446a40
call sub.libc.dll___cxa_guard_release
mov ecx, dword [ebp + 0xc]
add esp, 4
jmp 0x4062f4