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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xb8
mov eax, dword [edx + 0xc]
mov ebx, dword [ebp + 8]
mov edi, ecx
add ebx, eax
jae 0x45b5d6
xor esi, esi
inc esi
push esi
call fcn.00421cf0
add esp, 4
mov dword [edi + 4], eax
mov dword [edi + 8], edx
mov dword [edi], esi
mov edx, edi
jmp 0x45c11d
mov esi, dword [edx]
mov dword [esp + 0x20], edi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x1c], edx
lea ecx, [esi + 1]
mov edi, ecx
shr edi, 3
lea eax, [edi*8]
sub eax, edi
cmp esi, 8
cmovb eax, esi
mov esi, eax
shr esi, 1
cmp ebx, esi
jbe 0x45b62e
inc eax
cmp ebx, eax
cmova eax, ebx
test eax, eax
je 0x45bc2b
cmp eax, 7
ja 0x45c0bd
xor ecx, ecx
cmp eax, 3
seta cl
lea edi, [ecx*4 + 4]
jmp 0x45c0e5
movdqa xmm0, xmmword [0x463ec0]
mov edi, dword [esp + 0x1c]
xor eax, eax
xor ebx, ebx
test bl, 1
je 0x45b652
lea edx, [eax + 0xf]
add eax, 0xf
jb 0x45b678
cmp eax, ecx
jae 0x45b678
inc edx
jmp 0x45b65d
cmp eax, ecx
mov edx, eax
adc edx, 0
cmp eax, ecx
jae 0x45b678
mov esi, dword [edi + 4]
pxor xmm1, xmm1
mov bl, 1
pcmpgtb xmm1, xmmword [esi + eax]
por xmm1, xmm0
movdqa xmmword [esi + eax], xmm1
mov eax, edx
jmp 0x45b63e
mov ecx, dword [edi]
mov eax, dword [edi + 4]
inc ecx
cmp ecx, 0x10
jae 0x45b693
push ecx
push eax
add eax, 0x10
push eax
call fcn.0045c568
add esp, 0xc
jmp 0x45b6a7
movq xmm0, qword [eax]
movq xmm1, qword [eax + 8]
movq qword [eax + ecx + 8], xmm1
movq qword [eax + ecx], xmm0
mov ecx, dword [edi]
mov edx, dword [esp + 0x20]
xor eax, eax
inc ecx
je 0x45bc1a
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x90], ecx
mov eax, dword [esi + 4]
mov edx, dword [esi + 8]
mov ebx, dword [esi]
mov dword [esp + 0x28], edx
mov edx, dword [esi + 0xc]
mov esi, eax
mov dword [esp + 0x4c], eax
xor eax, 0x6c796765
mov dword [esp + 0x3c], ebx
xor esi, 0x736f6d65
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x44], esi
mov esi, ebx
xor ebx, 0x6e657261
xor esi, 0x70736575
mov dword [esp + 0xa8], ebx
mov dword [esp + 0x38], esi
mov esi, edx
mov dword [esp + 0x48], edx
xor edx, 0x74656462
xor esi, 0x646f7261
xor eax, 0x79746573
mov dword [esp + 0xa4], edx
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0xa0], eax
xor esi, 0x6e646f6d
xor eax, eax
xor edx, edx
inc eax
mov dword [esp + 0xb0], esi
mov ebx, dword [edi + 4]
mov esi, edx
mov edx, eax
cmp byte [ebx + esi], 0x80
jne 0x45bb91
mov dword [esp + 0x2c], esi
neg esi
mov dword [esp + 0x40], edx
mov dword [esp + 0x94], esi
lea edi, [esi + esi*2]
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
xor ecx, ecx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0x98], edi
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0x48]
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x5c], esi
mov esi, dword [esp + 0x44]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0xac]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x6c], esi
mov esi, dword [esp + 0x34]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0xa4]
mov dword [esp + 0x78], edx
lea edx, [esp + 0x80]
mov dword [esp + 0x7c], esi
mov dword [edx + 8], ecx
mov dword [edx], ecx
mov dword [edx + 0xc], ecx
mov dword [edx + 4], ecx
lea esi, [esp + 0x50]
mov edx, dword [ebx + edi*8 - 0x18]
mov ecx, esi
push dword [ebx + edi*8 - 0x10]
call fcn.00448bf0
add esp, 4
mov ecx, esi
lea edx, [esp + 0x17]
mov byte [esp + 0x17], 0xff
push 1
call fcn.00448bf0
add esp, 4
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0x80]
mov eax, dword [esp + 0x70]
mov edi, dword [esp + 0x74]
mov ebx, dword [esp + 0x64]
shl edx, 0x18
mov dword [esp + 0x30], esi
mov dword [esp + 8], eax
or edx, dword [esp + 0x84]
mov dword [esp + 0xc], edx
xor ecx, edx
mov edx, dword [esp + 0x78]
xor edx, esi
mov esi, dword [esp + 0x60]
add esi, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 8]
adc ebx, edi
mov dword [esp + 4], ebx
shld eax, edi, 0xd
shld edi, esi, 0xd
mov esi, dword [esp + 0x10]
xor edi, ebx
mov ebx, dword [esp + 0x6c]
xor eax, esi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x68]
add eax, edx
mov dword [esp + 8], eax
mov eax, edx
adc ebx, ecx
shrd edx, ecx, 0x10
shld eax, ecx, 0x10
xor edx, ebx
xor eax, dword [esp + 8]
add dword [esp + 4], eax
mov ecx, eax
adc esi, edx
shrd eax, edx, 0xb
shld ecx, edx, 0x15
xor eax, esi
xor ecx, dword [esp + 4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
add dword [esp + 8], eax
mov edx, eax
adc ebx, edi
shld edx, edi, 0x11
shrd eax, edi, 0xf
mov edi, esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x18], edx
xor eax, ebx
xor edi, dword [esp + 0xc]
xor ebx, 0xff
mov edx, dword [esp + 0x18]
mov dword [esp + 0xc], ebx
xor dword [esp + 4], esi
mov esi, ecx
xor edx, dword [esp + 8]
add dword [esp + 4], edx
mov ebx, edx
adc edi, eax
shrd edx, eax, 0x13
shld ebx, eax, 0xd
mov eax, dword [esp + 0x10]
xor edx, edi
xor ebx, dword [esp + 4]
mov dword [esp + 0x18], edx
mov edx, edi
mov edi, dword [esp + 0xc]
add edi, ecx
adc dword [esp + 8], eax
shrd ecx, eax, 0x10
shld esi, eax, 0x10
mov dword [esp + 0xc], edi
xor ecx, dword [esp + 8]
xor esi, edi
mov edi, dword [esp + 8]
add edx, esi
mov eax, esi
mov dword [esp + 0x10], edx
adc dword [esp + 4], ecx
shld eax, ecx, 0x15
shrd esi, ecx, 0xb
mov ecx, ebx
xor eax, edx
xor esi, dword [esp + 4]
add dword [esp + 0xc], ebx
mov edx, dword [esp + 0x18]
adc edi, edx
shld ecx, edx, 0x11
shrd ebx, edx, 0xf
xor ecx, dword [esp + 0xc]
xor ebx, edi
mov dword [esp + 8], edi
mov edi, dword [esp + 4]
add dword [esp + 0x10], ecx
mov edx, ecx
adc edi, ebx
shrd ecx, ebx, 0x13
shld edx, ebx, 0xd
mov ebx, eax
mov dword [esp + 4], edi
xor ecx, edi
mov edi, dword [esp + 0x10]
xor edx, edi
add dword [esp + 8], eax
adc dword [esp + 0xc], esi
shld ebx, esi, 0x10
shrd eax, esi, 0x10
xor ebx, dword [esp + 8]
xor eax, dword [esp + 0xc]
add dword [esp + 4], ebx
mov esi, ebx
adc edi, eax
shld esi, eax, 0x15
shrd ebx, eax, 0xb
mov eax, edx
mov dword [esp + 0x10], edi
xor ebx, edi
xor esi, dword [esp + 4]
add dword [esp + 8], edx
mov edi, dword [esp + 0xc]
adc edi, ecx
shld eax, ecx, 0x11
shrd edx, ecx, 0xf
xor eax, dword [esp + 8]
mov dword [esp + 0xc], edi
xor edx, edi
mov edi, dword [esp + 4]
add edi, eax
mov ecx, eax
adc dword [esp + 0x10], edx
shld ecx, edx, 0xd
shrd eax, edx, 0x13
mov edx, esi
xor ecx, edi
xor eax, dword [esp + 0x10]
add dword [esp + 0xc], esi
mov edi, dword [esp + 8]
adc edi, ebx
shrd esi, ebx, 0x10
shld edx, ebx, 0x10
mov ebx, dword [esp + 0xc]
xor esi, edi
xor edx, ebx
shld edx, esi, 0x15
add ebx, ecx
adc edi, eax
shrd eax, ecx, 0xf
xor eax, edx
mov edx, dword [esp + 0x1c]
xor eax, edi
xor eax, ebx
mov ecx, dword [edx]
mov edi, dword [edx + 4]
mov ebx, ecx
and ebx, eax
movdqu xmm0, xmmword [edi + ebx]
mov dword [esp + 4], ebx
pmovmskb edx, xmm0
test dx, dx
jne 0x45ba79
mov ebx, dword [esp + 4]
mov esi, 0x10
add ebx, esi
add esi, 0x10
and ebx, ecx
movdqu xmm0, xmmword [edi + ebx]
pmovmskb edx, xmm0
test dx, dx
je 0x45ba64
bsf dx, dx
movzx edx, dx
add edx, ebx
mov ebx, edx
and ebx, ecx
cmp byte [edi + ebx], 0
jns 0x45bb5f
mov esi, dword [esp + 0x2c]
mov dword [esp + 8], ebx
sub ebx, dword [esp + 4]
mov edx, esi
sub edx, dword [esp + 4]
xor ebx, edx
and ebx, ecx
cmp ebx, 0xf
jbe 0x45bb73
mov ebx, dword [esp + 8]
shr eax, 0x19
lea edx, [ebx - 0x10]
and edx, ecx
mov cl, byte [edi + ebx]
mov byte [edi + ebx], al
mov byte [edx + edi + 0x10], al
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x98]
cmp cl, 0xff
lea eax, [eax + edx*8 - 0x18]
je 0x45bba2
mov edi, dword [esp + 0x1c]
neg ebx
mov esi, dword [esp + 0x94]
lea edx, [ebx + ebx*2]
mov ecx, dword [edi + 4]
movsd xmm0, qword [ecx + edx*8 - 8]
movsd qword [esp + 0x60], xmm0
movsd xmm0, qword [ecx + edx*8 - 0x18]
movsd xmm1, qword [ecx + edx*8 - 0x10]
movsd qword [esp + 0x58], xmm1
movsd qword [esp + 0x50], xmm0
movsd xmm0, qword [eax + 0x10]
movsd qword [ecx + edx*8 - 8], xmm0
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [ecx + edx*8 - 0x10], xmm1
movsd qword [ecx + edx*8 - 0x18], xmm0
movsd xmm0, qword [esp + 0x60]
movsd qword [eax + 0x10], xmm0
movq xmm0, qword [esp + 0x50]
movq xmm1, qword [esp + 0x58]
movq qword [eax + 8], xmm1
movq qword [eax], xmm0
mov ebx, dword [edi + 4]
jmp 0x45b76d
movdqa xmm0, xmmword [edi]
pmovmskb edx, xmm0
bsf dx, dx
movzx ebx, dx
jmp 0x45ba90
lea edx, [esi - 0x10]
shr eax, 0x19
and ecx, edx
mov byte [edi + esi], al
mov byte [ecx + edi + 0x10], al
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x40]
cmp edx, ecx
mov eax, edx
adc eax, 0
cmp edx, ecx
jb 0x45b74b
jmp 0x45bbff
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x2c]
neg ebx
add ecx, 0xfffffff0
mov edx, dword [edi + 4]
and ecx, dword [edi]
mov dword [esp + 4], edx
mov dl, 0xff
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 4]
mov byte [ecx + esi], dl
mov esi, dword [esp + 4]
mov ecx, dword [esp + 0xc]
mov dl, 0xff
mov byte [ecx + esi + 0x10], dl
lea edx, [ebx + ebx*2]
mov ecx, dword [edi + 4]
movsd xmm0, qword [eax + 0x10]
movsd qword [ecx + edx*8 - 8], xmm0
movq xmm0, qword [eax]
movq xmm1, qword [eax + 8]
movq qword [ecx + edx*8 - 0x10], xmm1
movq qword [ecx + edx*8 - 0x18], xmm0
jmp 0x45bb86
mov ecx, dword [edi]
lea edx, [ecx + 1]
shr edx, 3
lea eax, [edx*8]
sub eax, edx
mov edx, dword [esp + 0x20]
cmp ecx, 8
cmovb eax, ecx
sub eax, dword [edi + 0xc]
mov dword [edi + 8], eax
mov dword [edx], 0
jmp 0x45c11d
call fcn.00421d30
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x34], 0
xor ebx, ebx
mov ecx, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x48], eax
mov dword [esp + 0x3c], ebx
movdqa xmm0, xmmword [edx]
lea esi, [ecx + edx + 1]
lea ecx, [edx + 0x10]
mov dword [esp + 0x24], edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x44], esi
pmovmskb edi, xmm0
not edi
test di, di
je 0x45bc73
mov dword [esp + 0x30], edi
jmp 0x45bcac
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
cmp edi, esi
jae 0x45c05e
movdqa xmm0, xmmword [edi]
add ecx, 0xfffffe80
add edi, 0x10
pmovmskb edx, xmm0
cmp dx, 0xffff
je 0x45bc7f
not edx
mov dword [esp + 0x38], edi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x30], edx
mov esi, dword [ebp + 0xc]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov esi, dword [esi + 0xc]
mov edi, eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], esi
xor eax, 0x6e657261
xor edi, 0x70736575
mov dword [esp + 0x60], edi
mov edi, ecx
xor ecx, 0x6c796765
xor edi, 0x736f6d65
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], eax
mov eax, edx
mov dword [esp + 0x6c], ecx
xor edx, 0x79746573
xor eax, 0x6e646f6d
mov dword [esp + 0x70], eax
mov eax, esi
xor esi, 0x74656462
xor eax, 0x646f7261
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x7c], esi
mov dword [esp + 0x78], edx
lea esi, [esp + 0x50]
lea ecx, [eax - 1]
bsf ax, ax
movzx eax, ax
mov dword [esp + 0x2c], ecx
xor ecx, ecx
neg eax
lea edi, [eax + eax*2]
lea eax, [esp + 0x80]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x24]
mov ecx, esi
mov dword [esp + 0x40], edi
mov edx, dword [eax + edi*8 - 0x18]
push dword [eax + edi*8 - 0x10]
call fcn.00448bf0
add esp, 4
mov ecx, esi
lea edx, [esp + 0x17]
mov byte [esp + 0x17], 0xff
push 1
call fcn.00448bf0
add esp, 4
mov eax, dword [esp + 0x88]
mov esi, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x78]
mov edi, dword [esp + 0x70]
mov ebx, dword [esp + 0x64]
shl eax, 0x18
xor ecx, edx
mov dword [esp + 0x28], edx
mov edx, edi
or eax, dword [esp + 0x84]
mov dword [esp + 0x10], eax
xor esi, eax
mov eax, dword [esp + 0x60]
add eax, edi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x74]
adc ebx, eax
shld edx, eax, 0xd
shld eax, edi, 0xd
mov edi, dword [esp + 0x68]
mov dword [esp + 8], ebx
xor eax, ebx
mov ebx, dword [esp + 0x6c]
xor edx, dword [esp + 4]
add edi, ecx
mov dword [esp + 0xc], edi
mov edi, ecx
adc ebx, esi
shrd ecx, esi, 0x10
mov dword [esp + 0x18], edx
shld edi, esi, 0x10
xor ecx, ebx
xor edi, dword [esp + 0xc]
add dword [esp + 8], edi
mov esi, edi
adc dword [esp + 4], ecx
shld esi, ecx, 0x15
shrd edi, ecx, 0xb
mov ecx, dword [esp + 4]
xor esi, dword [esp + 8]
xor edi, ecx
add dword [esp + 0xc], edx
adc ebx, eax
xor ecx, dword [esp + 0x10]
shld dword [esp + 0x18], eax, 0x11
shrd edx, eax, 0xf
mov eax, dword [esp + 0x18]
xor edx, ebx
xor ebx, 0xff
mov dword [esp + 0x10], ebx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 8]
xor eax, dword [esp + 0xc]
xor ecx, dword [esp + 0x28]
mov ebx, eax
add ecx, eax
mov dword [esp + 8], ecx
mov ecx, dword [esp + 4]
adc ecx, edx
shrd eax, edx, 0x13
shld ebx, edx, 0xd
mov edx, esi
xor eax, ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xc]
xor ebx, dword [esp + 8]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
add eax, esi
adc ecx, edi
shld edx, edi, 0x10
shrd esi, edi, 0x10
mov dword [esp + 0x10], eax
xor edx, eax
mov eax, dword [esp + 4]
xor esi, ecx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 8]
mov edi, edx
add eax, edx
adc ecx, esi
shld edi, esi, 0x15
shrd edx, esi, 0xb
mov dword [esp + 4], eax
mov esi, dword [esp + 0x18]
xor edi, eax
xor edx, ecx
add dword [esp + 0x10], ebx
mov eax, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, ebx
adc eax, dword [esp + 0x18]
shld ecx, esi, 0x11
mov esi, dword [esp + 0x18]
xor ecx, dword [esp + 0x10]
shrd ebx, esi, 0xf
mov dword [esp + 0xc], eax
xor ebx, eax
add dword [esp + 4], ecx
mov eax, dword [esp + 8]
mov esi, ecx
adc eax, ebx
shld esi, ebx, 0xd
shrd ecx, ebx, 0x13
mov ebx, edi
xor esi, dword [esp + 4]
mov dword [esp + 8], eax
xor ecx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0xc]
add esi, edi
adc eax, edx
shld ebx, edx, 0x10
shrd edi, edx, 0x10
mov dword [esp + 0xc], esi
xor ebx, esi
mov esi, dword [esp + 8]
xor edi, eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 4]
mov edx, ebx
add esi, ebx
adc eax, edi
shrd ebx, edi, 0xb
shld edx, edi, 0x15
mov edi, dword [esp + 0xc]
mov dword [esp + 8], esi
mov dword [esp + 4], eax
xor ebx, eax
mov eax, dword [esp + 0x18]
xor edx, esi
add edi, eax
mov esi, eax
adc dword [esp + 0x10], ecx
shld esi, ecx, 0x11
shrd eax, ecx, 0xf
mov ecx, eax
xor esi, edi
xor ecx, dword [esp + 0x10]
add dword [esp + 8], esi
mov eax, esi
adc dword [esp + 4], ecx
shld eax, ecx, 0xd
shrd esi, ecx, 0x13
mov ecx, edx
xor eax, dword [esp + 8]
xor esi, dword [esp + 4]
add dword [esp + 0x10], edx
adc edi, ebx
shrd edx, ebx, 0x10
shld ecx, ebx, 0x10
mov ebx, dword [esp + 0x10]
mov dword [esp + 8], eax
xor edx, edi
mov eax, edi
xor ecx, ebx
shld ecx, edx, 0x15
mov edx, dword [esp + 8]
add ebx, edx
adc eax, esi
shrd esi, edx, 0xf
xor esi, ecx
xor esi, eax
mov eax, dword [esp + 0x48]
xor esi, ebx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 4], esi
mov ecx, ebx
and ecx, esi
movdqu xmm0, xmmword [eax + ecx]
pmovmskb edx, xmm0
test dx, dx
jne 0x45bfe5
mov esi, 0x10
add ecx, esi
add esi, 0x10
and ecx, ebx
movdqu xmm0, xmmword [eax + ecx]
pmovmskb edx, xmm0
test dx, dx
je 0x45bfd0
bsf dx, dx
mov edi, dword [esp + 0x2c]
mov esi, ebx
movzx edx, dx
add edx, ecx
and edx, ebx
and edi, dword [esp + 0x30]
cmp byte [eax + edx], 0
jns 0x45c04d
mov ebx, dword [esp + 4]
lea ecx, [edx - 0x10]
and ecx, esi
mov esi, dword [esp + 0x40]
shr ebx, 0x19
mov byte [eax + edx], bl
mov byte [ecx + eax + 0x10], bl
mov ecx, dword [esp + 0x24]
neg edx
lea esi, [ecx + esi*8 - 0x18]
lea ecx, [edx + edx*2]
movsd xmm0, qword [esi + 0x10]
movsd qword [eax + ecx*8 - 8], xmm0
movq xmm0, qword [esi]
movq xmm1, qword [esi + 8]
mov esi, dword [esp + 0x44]
movq qword [eax + ecx*8 - 0x10], xmm1
movq qword [eax + ecx*8 - 0x18], xmm0
jmp 0x45bc68
movdqa xmm0, xmmword [eax]
pmovmskb ecx, xmm0
bsf cx, cx
movzx edx, cx
jmp 0x45c000
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x34]
mov ecx, dword [edx]
mov esi, dword [edx + 4]
mov dword [edx], ebx
mov dword [edx + 4], eax
mov eax, dword [esp + 0x4c]
sub edi, eax
test ecx, ecx
mov dword [edx + 8], edi
mov dword [edx + 0xc], eax
mov edx, dword [esp + 0x20]
mov dword [edx], 0
je 0x45c11d
lea eax, [ecx + 1]
mov edx, 0x18
mul edx
mov edx, dword [esp + 0x20]
add eax, 0xf
and eax, 0xfffffff0
add ecx, eax
add ecx, 0x11
je 0x45c11d
sub esi, eax
push 0x10
push ecx
push esi
mov esi, edx
call fcn.00402300
add esp, 0xc
mov eax, esi
jmp 0x45c11f
mov ecx, 8
mul ecx
jo 0x45c101
mov edx, 0x24924925
mov ecx, eax
mul edx
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 2
dec ecx
bsr ecx, ecx
xor ecx, 0x1f
xor edi, edi
dec edi
shr edi, cl
inc edi
mov ecx, 0x18
mov eax, edi
mul ecx
jo 0x45c101
mov esi, eax
lea edx, [edi + 0x10]
add esi, 0xf
and esi, 0xfffffff0
mov ebx, esi
add ebx, edx
jae 0x45c127
push 1
call fcn.00421cf0
add esp, 4
mov ecx, dword [esp + 0x20]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
mov edx, ecx
mov dword [ecx], 1
mov eax, edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
test ebx, ebx
mov dword [esp + 4], edi
je 0x45c153
push 0x10
push ebx
mov edi, edx
call fcn.00401210
mov edx, edi
add esp, 8
mov edi, eax
test eax, eax
jne 0x45c158
push 0x10
push ebx
push 1
call fcn.00421d10
add esp, 0xc
jmp 0x45c10b
mov edi, 0x10
mov ecx, dword [esp + 4]
add edi, esi
lea ebx, [ecx - 1]
shr ecx, 3
lea eax, [ecx*8]
sub eax, ecx
cmp ebx, 8
cmovb eax, ebx
mov dword [esp + 0x34], eax
push edx
push 0xff
push edi
call fcn.0045c56e
add esp, 0xc
mov edx, dword [esp + 0x1c]
mov eax, edi
jmp 0x45bc3e