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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0xd8
mov eax, edx
mov dword [ebp - 0xbc], 0
mov edx, dword [ebx + 0x18]
xorps xmm7, xmm7
mov dword [ebp - 0x68], eax
xorps xmm3, xmm3
and eax, 0xfffffffc
mov dword [ebp - 0xb8], 0xffffffff
push esi
mov dword [ebp - 0x44], eax
mov esi, ecx
push edi
lea edi, [edx + eax*4]
mov dword [ebp - 0x64], esi
movzx eax, byte [ebx + 8]
xorps xmm4, xmm4
mov ecx, eax
mov dword [ebp - 0xc], eax
or eax, 0xffffffff
mov dword [ebp - 0x48], edi
shl eax, cl
xorps xmm5, xmm5
mov ecx, dword [ebx + 0xc]
not eax
mov dword [ebp - 0xb4], eax
movaps xmmword [ebp - 0x40], xmm7
movaps xmmword [ebp - 0x60], xmm7
movd xmm0, eax
pshufd xmm0, xmm0, 0
movaps xmmword [ebp - 0xd0], xmm0
movaps xmmword [ebp - 0x90], xmm7
cmp ecx, 4
jl 0x43c6ed
mov ecx, dword [ebx + 0x14]
movups xmm1, xmmword [edx - 0x10]
mov eax, dword [ebx + 0xc]
add eax, 0xfffffffc
movaps xmmword [ebp - 0x40], xmm1
movaps xmm7, xmm1
movups xmm3, xmmword [ecx]
movaps xmm6, xmm3
cmp eax, 4
jl 0x43c605
movups xmm1, xmmword [edx - 0x20]
sub eax, 4
movups xmm4, xmmword [ecx + 0x10]
movaps xmmword [ebp - 0x60], xmm1
movaps xmm0, xmm1
movaps xmm2, xmm4
movups xmmword [ebp - 0x80], xmm2
movups xmmword [ebp - 0xb0], xmm0
cmp eax, 4
jne 0x43c4f4
movups xmm0, xmmword [edx - 0x30]
movups xmm5, xmmword [ecx + 0x20]
movaps xmmword [ebp - 0x90], xmm0
jmp 0x43c7ae
movaps xmmword [ebp - 0x40], xmm7
movaps xmm3, xmm6
movaps xmmword [ebp - 0x60], xmm0
movaps xmm4, xmm2
sub eax, 1
je 0x43c5d2
sub eax, 1
je 0x43c587
sub eax, 1
jne 0x43c7ae
movd xmm0, dword [ecx + 0x24]
movd xmm2, dword [ecx + 0x28]
movd xmm5, dword [ecx + 0x20]
movaps xmm4, xmmword [ebp - 0x80]
movd xmm1, eax
punpckldq xmm2, xmm1
movd xmm1, dword [edx - 0x24]
punpckldq xmm5, xmm0
movd xmm0, dword [edx - 0x2c]
punpcklqdq xmm5, xmm2
movd xmm2, dword [edx - 0x28]
movd xmm3, eax
movaps xmmword [ebp - 0x90], xmm3
movaps xmm3, xmm6
punpckldq xmm2, xmm1
movaps xmm1, xmmword [ebp - 0x90]
punpckldq xmm1, xmm0
movaps xmm0, xmmword [ebp - 0xb0]
punpcklqdq xmm1, xmm2
movaps xmmword [ebp - 0x90], xmm1
movaps xmmword [ebp - 0x40], xmm7
movaps xmmword [ebp - 0x60], xmm0
jmp 0x43c7ae
movd xmm1, dword [ecx + 0x24]
xorps xmm0, xmm0
movd xmm5, dword [ecx + 0x20]
punpckldq xmm5, xmm1
movd xmm1, dword [edx - 0x28]
punpcklqdq xmm5, xmm0
movd xmm0, dword [edx - 0x24]
punpckldq xmm1, xmm0
xorps xmm0, xmm0
punpcklqdq xmm0, xmm1
movaps xmmword [ebp - 0x90], xmm0
movaps xmm0, xmmword [ebp - 0xb0]
movaps xmm3, xmm6
movaps xmm4, xmm2
movaps xmmword [ebp - 0x40], xmm7
movaps xmmword [ebp - 0x60], xmm0
jmp 0x43c7ae
movd xmm5, dword [ecx + 0x20]
xor eax, eax
xorps xmm3, xmm3
movd xmm0, eax
punpckldq xmm5, xmm0
xorps xmm0, xmm0
punpckldq xmm5, xmm0
movd xmm0, dword [edx - 0x24]
movd xmm1, eax
punpckldq xmm1, xmm0
punpckldq xmm3, xmm1
movaps xmmword [ebp - 0x90], xmm3
jmp 0x43c5b8
movaps xmmword [ebp - 0x40], xmm7
movaps xmm3, xmm6
sub eax, 1
je 0x43c6b3
sub eax, 1
je 0x43c679
sub eax, 1
jne 0x43c7ae
movd xmm0, dword [ecx + 0x14]
movd xmm2, dword [ecx + 0x18]
movd xmm4, dword [ecx + 0x10]
movd xmm1, eax
punpckldq xmm2, xmm1
movd xmm1, dword [edx - 0x14]
punpckldq xmm4, xmm0
movd xmm0, dword [edx - 0x1c]
punpcklqdq xmm4, xmm2
movd xmm2, dword [edx - 0x18]
movd xmm3, eax
movaps xmmword [ebp - 0x60], xmm3
movaps xmm3, xmm6
punpckldq xmm2, xmm1
movaps xmm1, xmmword [ebp - 0x60]
punpckldq xmm1, xmm0
punpcklqdq xmm1, xmm2
movaps xmmword [ebp - 0x60], xmm1
movaps xmmword [ebp - 0x40], xmm7
jmp 0x43c7ae
movd xmm1, dword [ecx + 0x14]
xorps xmm0, xmm0
movd xmm4, dword [ecx + 0x10]
movaps xmm3, xmm6
punpckldq xmm4, xmm1
movd xmm1, dword [edx - 0x18]
punpcklqdq xmm4, xmm0
movd xmm0, dword [edx - 0x14]
punpckldq xmm1, xmm0
xorps xmm0, xmm0
punpcklqdq xmm0, xmm1
movaps xmmword [ebp - 0x60], xmm0
movaps xmmword [ebp - 0x40], xmm7
jmp 0x43c7ae
movd xmm4, dword [ecx + 0x10]
xor eax, eax
xorps xmm2, xmm2
movaps xmmword [ebp - 0x40], xmm7
movaps xmm3, xmm6
movd xmm0, eax
punpckldq xmm4, xmm0
xorps xmm0, xmm0
punpckldq xmm4, xmm0
movd xmm0, dword [edx - 0x14]
movd xmm1, eax
punpckldq xmm1, xmm0
punpckldq xmm2, xmm1
movaps xmmword [ebp - 0x60], xmm2
jmp 0x43c7ae
mov eax, ecx
sub eax, 1
je 0x43c77c
sub eax, 1
je 0x43c74e
sub eax, 1
jne 0x43c7ae
movd xmm1, eax
mov eax, dword [ebx + 0x14]
movd xmm0, dword [eax + 4]
movd xmm2, dword [eax + 8]
movd xmm3, dword [eax]
xor eax, eax
punpckldq xmm2, xmm1
movd xmm1, dword [edx - 4]
punpckldq xmm3, xmm0
movd xmm0, dword [edx - 0xc]
punpcklqdq xmm3, xmm2
movd xmm2, dword [edx - 8]
movd xmm6, eax
punpckldq xmm2, xmm1
punpckldq xmm6, xmm0
punpcklqdq xmm6, xmm2
movaps xmmword [ebp - 0x40], xmm6
jmp 0x43c7ae
mov eax, dword [ebx + 0x14]
xorps xmm0, xmm0
xorps xmm2, xmm2
movd xmm1, dword [eax + 4]
movd xmm3, dword [eax]
punpckldq xmm3, xmm1
movd xmm1, dword [edx - 8]
punpcklqdq xmm3, xmm0
movd xmm0, dword [edx - 4]
punpckldq xmm1, xmm0
punpcklqdq xmm2, xmm1
jmp 0x43c7aa
xor eax, eax
xorps xmm2, xmm2
movd xmm0, eax
mov eax, dword [ebx + 0x14]
movd xmm3, dword [eax]
xor eax, eax
punpckldq xmm3, xmm0
xorps xmm0, xmm0
punpckldq xmm3, xmm0
movd xmm0, dword [edx - 4]
movd xmm1, eax
punpckldq xmm1, xmm0
punpckldq xmm2, xmm1
movaps xmmword [ebp - 0x40], xmm2
pshufd xmm0, xmm3, 0x1b
movaps xmmword [ebp - 0xa0], xmm0
pshufd xmm0, xmm4, 0x1b
movaps xmmword [ebp - 0x80], xmm0
pshufd xmm0, xmm5, 0x1b
movaps xmmword [ebp - 0xb0], xmm0
cmp edx, edi
jae 0x43db62
mov ecx, dword [ebp - 0xc]
mov eax, 0x20
inc ecx
sub eax, ecx
mov dword [ebp - 0x1c], eax
nop word [eax + eax]
cmp dword [0x593874], 0
mov edx, dword [esi + 0x101c]
mov edi, dword [esi + 0x18]
je 0x43c808
lzcnt ecx, edx
jmp 0x43c81b
test edx, edx
jne 0x43c811
lea ecx, [edx + 0x20]
jmp 0x43c81b
bsr eax, edx
mov ecx, 0x1f
sub ecx, eax
cmp ecx, 0x20
jae 0x43c828
mov dword [ebp - 0x2c], ecx
jmp 0x43c9e5
mov eax, 0x20
sub eax, edi
mov dword [ebp - 0x2c], eax
nop dword [eax]
nop word [eax + eax]
mov edi, dword [esi + 0x14]
cmp edi, 0x400
jae 0x43c99f
mov ecx, dword [esi + 0x1028]
mov eax, dword [esi + 0x1024]
movzx edx, word [esi + 0x1020]
test ecx, ecx
jne 0x43c8dd
mov edi, dword [esi + 0x1024]
mov ecx, edx
shr eax, 0x18
shr ecx, 8
xor ecx, eax
shl edx, 8
mov eax, edi
shr eax, 0x10
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
movzx ecx, al
mov eax, edx
shr eax, 8
xor ecx, eax
shl edx, 8
mov eax, edi
shr eax, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
movzx ecx, al
mov eax, edx
shr eax, 8
xor ecx, eax
shl edx, 8
mov eax, edi
mov edi, dword [esi + 0x14]
movzx eax, al
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov ecx, edx
shl edx, 8
shr ecx, 8
xor ecx, eax
xor dx, word [ecx*2 + 0x4eda90]
jmp 0x43c97f
mov eax, 3
sub eax, ecx
cmp eax, 3
ja case.default.0x43c8ed
jmp dword [eax*4 + 0x43e194]
mov eax, dword [esi + 0x1024]
mov ecx, edx
shr ecx, 8
shr eax, 0x18
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
shr eax, 0x10
movzx ecx, al
movzx eax, dx
shr eax, 8
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
shr eax, 8
movzx ecx, al
movzx eax, dx
shr eax, 8
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
movzx ecx, dx
shr ecx, 8
movzx eax, al
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov dword [esi + 0x1028], 0
movzx eax, dx
mov word [esi + 0x1020], ax
lea eax, [edi + 1]
mov edx, dword [esi + edi*4 + 0x1c]
xor edi, edi
bswap edx
mov dword [esi + 0x14], eax
mov dword [esi + 0x1024], edx
jmp 0x43c9b7
mov ecx, esi
call fcn.00437160
test eax, eax
je 0x43e188
mov edx, dword [esi + 0x101c]
mov edi, dword [esi + 0x18]
cmp dword [0x593874], 0
je 0x43c9c6
lzcnt ecx, edx
jmp 0x43c9d9
test edx, edx
jne 0x43c9cf
lea ecx, [edx + 0x20]
jmp 0x43c9d9
bsr eax, edx
mov ecx, 0x1f
sub ecx, eax
add dword [ebp - 0x2c], ecx
cmp ecx, 0x20
jae 0x43c840
shl edx, cl
add edi, ecx
mov ecx, dword [ebp - 0x1c]
mov eax, edx
shr eax, cl
mov dword [ebp - 0x10], eax
cmp edi, ecx
ja 0x43ca06
mov eax, dword [ebp - 0xc]
inc eax
mov ecx, eax
shl edx, cl
add edi, eax
jmp 0x43cbaa
sub edi, ecx
mov dword [ebp - 0x10], eax
cmp dword [esi + 0x14], 0x400
mov dword [ebp - 4], edi
jae 0x43cb6d
mov ecx, dword [esi + 0x1028]
mov eax, dword [esi + 0x1024]
movzx edx, word [esi + 0x1020]
test ecx, ecx
jne 0x43caac
mov ecx, edx
shr eax, 0x18
shr ecx, 8
xor ecx, eax
shl edx, 8
mov eax, dword [esi + 0x1024]
shr eax, 0x10
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
movzx ecx, al
mov eax, edx
shr eax, 8
xor ecx, eax
shl edx, 8
mov eax, dword [esi + 0x1024]
shr eax, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
movzx ecx, al
mov eax, edx
shr eax, 8
xor ecx, eax
shl edx, 8
mov eax, dword [esi + 0x1024]
movzx eax, al
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov ecx, edx
shl edx, 8
shr ecx, 8
xor ecx, eax
xor dx, word [ecx*2 + 0x4eda90]
jmp 0x43cb4e
mov eax, 3
sub eax, ecx
cmp eax, 3
ja case.default.0x43cabc
jmp dword [eax*4 + 0x43e1a4]
mov eax, dword [esi + 0x1024]
mov ecx, edx
shr ecx, 8
shr eax, 0x18
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
shr eax, 0x10
movzx ecx, al
movzx eax, dx
shr eax, 8
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
shr eax, 8
movzx ecx, al
movzx eax, dx
shr eax, 8
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
movzx ecx, dx
shr ecx, 8
movzx eax, al
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov dword [esi + 0x1028], 0
movzx eax, dx
mov word [esi + 0x1020], ax
mov eax, dword [esi + 0x14]
mov edx, dword [esi + eax*4 + 0x1c]
inc eax
bswap edx
mov dword [esi + 0x14], eax
mov dword [esi + 0x1024], edx
jmp 0x43cb96
mov ecx, esi
call fcn.00437160
test eax, eax
je 0x43e188
mov ecx, dword [esi + 0x18]
mov eax, 0x20
sub eax, ecx
cmp edi, eax
ja 0x43e188
mov edx, dword [esi + 0x101c]
add edi, ecx
mov ecx, 0x20
mov eax, edx
sub ecx, dword [ebp - 4]
shr eax, cl
mov ecx, dword [ebp - 4]
shl edx, cl
or dword [ebp - 0x10], eax
cmp dword [0x593874], 0
mov dword [esi + 0x101c], edx
mov dword [esi + 0x18], edi
je 0x43cbc2
lzcnt ecx, edx
jmp 0x43cbd5
test edx, edx
jne 0x43cbcb
lea ecx, [edx + 0x20]
jmp 0x43cbd5
bsr eax, edx
mov ecx, 0x1f
sub ecx, eax
cmp ecx, 0x20
jae 0x43cbe2
mov dword [ebp - 0x28], ecx
jmp 0x43cd95
mov eax, 0x20
sub eax, edi
mov dword [ebp - 0x28], eax
nop dword [eax]
mov edi, dword [esi + 0x14]
cmp edi, 0x400
jae 0x43cd4f
mov ecx, dword [esi + 0x1028]
mov eax, dword [esi + 0x1024]
movzx edx, word [esi + 0x1020]
test ecx, ecx
jne 0x43cc8d
mov edi, dword [esi + 0x1024]
mov ecx, edx
shr eax, 0x18
shr ecx, 8
xor ecx, eax
shl edx, 8
mov eax, edi
shr eax, 0x10
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
movzx ecx, al
mov eax, edx
shr eax, 8
xor ecx, eax
shl edx, 8
mov eax, edi
shr eax, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
movzx ecx, al
mov eax, edx
shr eax, 8
xor ecx, eax
shl edx, 8
mov eax, edi
mov edi, dword [esi + 0x14]
movzx eax, al
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov ecx, edx
shl edx, 8
shr ecx, 8
xor ecx, eax
xor dx, word [ecx*2 + 0x4eda90]
jmp 0x43cd2f
mov eax, 3
sub eax, ecx
cmp eax, 3
ja case.default.0x43cc9d
jmp dword [eax*4 + 0x43e1b4]
mov eax, dword [esi + 0x1024]
mov ecx, edx
shr ecx, 8
shr eax, 0x18
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
shr eax, 0x10
movzx ecx, al
movzx eax, dx
shr eax, 8
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
shr eax, 8
movzx ecx, al
movzx eax, dx
shr eax, 8
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
movzx ecx, dx
shr ecx, 8
movzx eax, al
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov dword [esi + 0x1028], 0
movzx eax, dx
mov word [esi + 0x1020], ax
lea eax, [edi + 1]
mov edx, dword [esi + edi*4 + 0x1c]
xor edi, edi
bswap edx
mov dword [esi + 0x14], eax
mov dword [esi + 0x1024], edx
jmp 0x43cd67
mov ecx, esi
call fcn.00437160
test eax, eax
je 0x43e188
mov edx, dword [esi + 0x101c]
mov edi, dword [esi + 0x18]
cmp dword [0x593874], 0
je 0x43cd76
lzcnt ecx, edx
jmp 0x43cd89
test edx, edx
jne 0x43cd7f
lea ecx, [edx + 0x20]
jmp 0x43cd89
bsr eax, edx
mov ecx, 0x1f
sub ecx, eax
add dword [ebp - 0x28], ecx
cmp ecx, 0x20
jae 0x43cbf0
shl edx, cl
add edi, ecx
mov ecx, dword [ebp - 0x1c]
mov eax, edx
shr eax, cl
mov dword [ebp - 0x18], eax
cmp edi, ecx
ja 0x43cdb6
mov eax, dword [ebp - 0xc]
inc eax
mov ecx, eax
shl edx, cl
add edi, eax
jmp 0x43cf66
sub edi, ecx
mov dword [ebp - 4], eax
cmp dword [esi + 0x14], 0x400
mov dword [ebp - 8], edi
jae 0x43cf21
mov ecx, dword [esi + 0x1028]
mov eax, dword [esi + 0x1024]
movzx edx, word [esi + 0x1020]
test ecx, ecx
jne 0x43ce60
mov ecx, edx
shr eax, 0x18
shr ecx, 8
xor ecx, eax
shl edx, 8
mov eax, dword [esi + 0x1024]
shr eax, 0x10
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
movzx ecx, al
mov eax, edx
shr eax, 8
xor ecx, eax
shl edx, 8
mov eax, dword [esi + 0x1024]
shr eax, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
movzx ecx, al
mov eax, edx
shr eax, 8
xor ecx, eax
shl edx, 8
mov eax, dword [esi + 0x1024]
movzx eax, al
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov ecx, edx
shl edx, 8
shr ecx, 8
xor ecx, eax
xor dx, word [ecx*2 + 0x4eda90]
jmp 0x43cf02
mov eax, 3
sub eax, ecx
cmp eax, 3
ja case.default.0x43ce70
jmp dword [eax*4 + 0x43e1c4]
mov eax, dword [esi + 0x1024]
mov ecx, edx
shr ecx, 8
shr eax, 0x18
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
shr eax, 0x10
movzx ecx, al
movzx eax, dx
shr eax, 8
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
shr eax, 8
movzx ecx, al
movzx eax, dx
shr eax, 8
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
movzx ecx, dx
shr ecx, 8
movzx eax, al
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov dword [esi + 0x1028], 0
movzx eax, dx
mov word [esi + 0x1020], ax
mov eax, dword [esi + 0x14]
mov edx, dword [esi + eax*4 + 0x1c]
inc eax
bswap edx
mov dword [esi + 0x14], eax
mov dword [esi + 0x1024], edx
jmp 0x43cf4a
mov ecx, esi
call fcn.00437160
test eax, eax
je 0x43e188
mov ecx, dword [esi + 0x18]
mov eax, 0x20
sub eax, ecx
cmp edi, eax
ja 0x43e188
mov edx, dword [esi + 0x101c]
add edi, ecx
mov ecx, 0x20
mov dword [ebp - 0x18], edx
sub ecx, dword [ebp - 8]
shr dword [ebp - 0x18], cl
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 8]
shl edx, cl
or eax, dword [ebp - 4]
mov dword [ebp - 0x18], eax
cmp dword [0x593874], 0
mov dword [esi + 0x101c], edx
mov dword [esi + 0x18], edi
je 0x43cf7e
lzcnt ecx, edx
jmp 0x43cf91
test edx, edx
jne 0x43cf87
lea ecx, [edx + 0x20]
jmp 0x43cf91
bsr eax, edx
mov ecx, 0x1f
sub ecx, eax
cmp ecx, 0x20
jae 0x43cf9e
mov dword [ebp - 0x24], ecx
jmp 0x43d155
mov eax, 0x20
sub eax, edi
mov dword [ebp - 0x24], eax
nop dword [eax + eax]
mov edi, dword [esi + 0x14]
cmp edi, 0x400
jae 0x43d10f
mov ecx, dword [esi + 0x1028]
mov eax, dword [esi + 0x1024]
movzx edx, word [esi + 0x1020]
test ecx, ecx
jne 0x43d04d
mov edi, dword [esi + 0x1024]
mov ecx, edx
shr eax, 0x18
shr ecx, 8
xor ecx, eax
shl edx, 8
mov eax, edi
shr eax, 0x10
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
movzx ecx, al
mov eax, edx
shr eax, 8
xor ecx, eax
shl edx, 8
mov eax, edi
shr eax, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
movzx ecx, al
mov eax, edx
shr eax, 8
xor ecx, eax
shl edx, 8
mov eax, edi
mov edi, dword [esi + 0x14]
movzx eax, al
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov ecx, edx
shl edx, 8
shr ecx, 8
xor ecx, eax
xor dx, word [ecx*2 + 0x4eda90]
jmp 0x43d0ef
mov eax, 3
sub eax, ecx
cmp eax, 3
ja case.default.0x43d05d
jmp dword [eax*4 + 0x43e1d4]
mov eax, dword [esi + 0x1024]
mov ecx, edx
shr ecx, 8
shr eax, 0x18
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
shr eax, 0x10
movzx ecx, al
movzx eax, dx
shr eax, 8
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
shr eax, 8
movzx ecx, al
movzx eax, dx
shr eax, 8
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
movzx ecx, dx
shr ecx, 8
movzx eax, al
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov dword [esi + 0x1028], 0
movzx eax, dx
mov word [esi + 0x1020], ax
lea eax, [edi + 1]
mov edx, dword [esi + edi*4 + 0x1c]
xor edi, edi
bswap edx
mov dword [esi + 0x14], eax
mov dword [esi + 0x1024], edx
jmp 0x43d127
mov ecx, esi
call fcn.00437160
test eax, eax
je 0x43e188
mov edx, dword [esi + 0x101c]
mov edi, dword [esi + 0x18]
cmp dword [0x593874], 0
je 0x43d136
lzcnt ecx, edx
jmp 0x43d149
test edx, edx
jne 0x43d13f
lea ecx, [edx + 0x20]
jmp 0x43d149
bsr eax, edx
mov ecx, 0x1f
sub ecx, eax
add dword [ebp - 0x24], ecx
cmp ecx, 0x20
jae 0x43cfb0
shl edx, cl
add edi, ecx
mov ecx, dword [ebp - 0x1c]
mov eax, edx
shr eax, cl
mov dword [ebp - 0x14], eax
cmp edi, ecx
ja 0x43d176
mov eax, dword [ebp - 0xc]
inc eax
mov ecx, eax
shl edx, cl
add edi, eax
jmp 0x43d322
sub edi, ecx
mov dword [ebp - 4], eax
cmp dword [esi + 0x14], 0x400
mov dword [ebp - 8], edi
jae 0x43d2dd
mov ecx, dword [esi + 0x1028]
mov eax, dword [esi + 0x1024]
movzx edx, word [esi + 0x1020]
test ecx, ecx
jne 0x43d21c
mov ecx, edx
shr eax, 0x18
shr ecx, 8
xor ecx, eax
shl edx, 8
mov eax, dword [esi + 0x1024]
shr eax, 0x10
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
movzx ecx, al
mov eax, edx
shr eax, 8
xor ecx, eax
shl edx, 8
mov eax, dword [esi + 0x1024]
shr eax, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
movzx ecx, al
mov eax, edx
shr eax, 8
xor ecx, eax
shl edx, 8
mov eax, dword [esi + 0x1024]
movzx eax, al
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov ecx, edx
shl edx, 8
shr ecx, 8
xor ecx, eax
xor dx, word [ecx*2 + 0x4eda90]
jmp 0x43d2be
mov eax, 3
sub eax, ecx
cmp eax, 3
ja case.default.0x43d22c
jmp dword [eax*4 + 0x43e1e4]
mov eax, dword [esi + 0x1024]
mov ecx, edx
shr ecx, 8
shr eax, 0x18
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
shr eax, 0x10
movzx ecx, al
movzx eax, dx
shr eax, 8
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
shr eax, 8
movzx ecx, al
movzx eax, dx
shr eax, 8
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
movzx ecx, dx
shr ecx, 8
movzx eax, al
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov dword [esi + 0x1028], 0
movzx eax, dx
mov word [esi + 0x1020], ax
mov eax, dword [esi + 0x14]
mov edx, dword [esi + eax*4 + 0x1c]
inc eax
bswap edx
mov dword [esi + 0x14], eax
mov dword [esi + 0x1024], edx
jmp 0x43d306
mov ecx, esi
call fcn.00437160
test eax, eax
je 0x43e188
mov ecx, dword [esi + 0x18]
mov eax, 0x20
sub eax, ecx
cmp edi, eax
ja 0x43e188
mov edx, dword [esi + 0x101c]
add edi, ecx
mov ecx, 0x20
mov dword [ebp - 0x14], edx
sub ecx, dword [ebp - 8]
shr dword [ebp - 0x14], cl
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
shl edx, cl
or eax, dword [ebp - 4]
mov dword [ebp - 0x14], eax
cmp dword [0x593874], 0
mov dword [esi + 0x101c], edx
mov dword [esi + 0x18], edi
je 0x43d33a
lzcnt ecx, edx
jmp 0x43d34d
test edx, edx
jne 0x43d343
lea ecx, [edx + 0x20]
jmp 0x43d34d
bsr eax, edx
mov ecx, 0x1f
sub ecx, eax
cmp ecx, 0x20
jae 0x43d35a
mov dword [ebp - 0x20], ecx
jmp 0x43d515
mov eax, 0x20
sub eax, edi
mov dword [ebp - 0x20], eax
nop dword [eax]
nop dword [eax + eax]
mov edi, dword [esi + 0x14]
cmp edi, 0x400
jae 0x43d4cf
mov ecx, dword [esi + 0x1028]
mov eax, dword [esi + 0x1024]
movzx edx, word [esi + 0x1020]
test ecx, ecx
jne 0x43d40d
mov edi, dword [esi + 0x1024]
mov ecx, edx
shr eax, 0x18
shr ecx, 8
xor ecx, eax
shl edx, 8
mov eax, edi
shr eax, 0x10
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
movzx ecx, al
mov eax, edx
shr eax, 8
xor ecx, eax
shl edx, 8
mov eax, edi
shr eax, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
movzx ecx, al
mov eax, edx
shr eax, 8
xor ecx, eax
shl edx, 8
mov eax, edi
mov edi, dword [esi + 0x14]
movzx eax, al
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov ecx, edx
shl edx, 8
shr ecx, 8
xor ecx, eax
xor dx, word [ecx*2 + 0x4eda90]
jmp 0x43d4af
mov eax, 3
sub eax, ecx
cmp eax, 3
ja case.default.0x43d41d
jmp dword [eax*4 + 0x43e1f4]
mov eax, dword [esi + 0x1024]
mov ecx, edx
shr ecx, 8
shr eax, 0x18
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
shr eax, 0x10
movzx ecx, al
movzx eax, dx
shr eax, 8
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
shr eax, 8
movzx ecx, al
movzx eax, dx
shr eax, 8
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
movzx ecx, dx
shr ecx, 8
movzx eax, al
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov dword [esi + 0x1028], 0
movzx eax, dx
mov word [esi + 0x1020], ax
lea eax, [edi + 1]
mov edx, dword [esi + edi*4 + 0x1c]
xor edi, edi
bswap edx
mov dword [esi + 0x14], eax
mov dword [esi + 0x1024], edx
jmp 0x43d4e7
mov ecx, esi
call fcn.00437160
test eax, eax
je 0x43e188
mov edx, dword [esi + 0x101c]
mov edi, dword [esi + 0x18]
cmp dword [0x593874], 0
je 0x43d4f6
lzcnt ecx, edx
jmp 0x43d509
test edx, edx
jne 0x43d4ff
lea ecx, [edx + 0x20]
jmp 0x43d509
bsr eax, edx
mov ecx, 0x1f
sub ecx, eax
add dword [ebp - 0x20], ecx
cmp ecx, 0x20
jae 0x43d370
shl edx, cl
add edi, ecx
mov ecx, dword [ebp - 0x1c]
mov eax, edx
shr eax, cl
cmp edi, ecx
ja 0x43d534
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x64]
inc ecx
shl edx, cl
add edi, ecx
jmp 0x43d6db
sub edi, ecx
mov dword [ebp - 4], eax
cmp dword [esi + 0x14], 0x400
mov dword [ebp - 8], edi
jae 0x43d69b
mov ecx, dword [esi + 0x1028]
mov eax, dword [esi + 0x1024]
movzx edx, word [esi + 0x1020]
test ecx, ecx
jne 0x43d5da
mov ecx, edx
shr eax, 0x18
shr ecx, 8
xor ecx, eax
shl edx, 8
mov eax, dword [esi + 0x1024]
shr eax, 0x10
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
movzx ecx, al
mov eax, edx
shr eax, 8
xor ecx, eax
shl edx, 8
mov eax, dword [esi + 0x1024]
shr eax, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
movzx ecx, al
mov eax, edx
shr eax, 8
xor ecx, eax
shl edx, 8
mov eax, dword [esi + 0x1024]
movzx eax, al
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov ecx, edx
shl edx, 8
shr ecx, 8
xor ecx, eax
xor dx, word [ecx*2 + 0x4eda90]
jmp 0x43d67c
mov eax, 3
sub eax, ecx
cmp eax, 3
ja case.default.0x43d5ea
jmp dword [eax*4 + 0x43e204]
mov eax, dword [esi + 0x1024]
mov ecx, edx
shr ecx, 8
shr eax, 0x18
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
shr eax, 0x10
movzx ecx, al
movzx eax, dx
shr eax, 8
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
shr eax, 8
movzx ecx, al
movzx eax, dx
shr eax, 8
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
movzx ecx, dx
shr ecx, 8
movzx eax, al
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov dword [esi + 0x1028], 0
movzx eax, dx
mov word [esi + 0x1020], ax
mov eax, dword [esi + 0x14]
mov edx, dword [esi + eax*4 + 0x1c]
inc eax
bswap edx
mov dword [esi + 0x14], eax
mov dword [esi + 0x1024], edx
jmp 0x43d6c4
mov ecx, esi
call fcn.00437160
test eax, eax
je 0x43e188
mov ecx, dword [esi + 0x18]
mov eax, 0x20
sub eax, ecx
cmp edi, eax
ja 0x43e188
mov edx, dword [esi + 0x101c]
add edi, ecx
mov ecx, 0x20
mov eax, edx
sub ecx, dword [ebp - 8]
shr eax, cl
mov ecx, dword [ebp - 8]
shl edx, cl
or dword [ebp - 4], eax
mov eax, dword [ebp - 4]
movd xmm2, dword [ebp - 0x20]
movd xmm0, dword [ebp - 0x24]
movd xmm1, dword [ebp - 0x28]
movd xmm4, dword [ebp - 0x2c]
movd xmm3, dword [ebp - 0x10]
movaps xmm6, xmmword [0x4f4b80]
mov ecx, dword [ebx + 0xc]
punpckldq xmm4, xmm0
mov dword [esi + 0x18], edi
mov edi, dword [ebp - 0xc]
punpckldq xmm1, xmm2
punpckldq xmm4, xmm1
movd xmm1, dword [ebp - 0x18]
movd xmm0, edi
movd xmm2, eax
mov eax, dword [ebx + 0x10]
punpckldq xmm1, xmm2
mov dword [esi + 0x101c], edx
pslld xmm4, xmm0
movd xmm0, dword [ebp - 0x14]
punpckldq xmm3, xmm0
punpckldq xmm3, xmm1
pand xmm3, xmmword [ebp - 0xd0]
por xmm4, xmm3
pand xmm6, xmm4
psrld xmm4, 1
pxor xmm6, xmmword [0x4f4f20]
paddd xmm6, xmmword [0x4f4b80]
pxor xmm6, xmm4
cmp ecx, 4
ja 0x43d846
movaps xmm5, xmmword [ebp - 0xa0]
xorps xmm2, xmm2
movaps xmm0, xmm5
palignr xmm2, xmm6, 4
pmulld xmm0, xmmword [ebp - 0x40]
pshufd xmm1, xmm0, 0x4e
paddd xmm1, xmm0
movd xmm0, eax
pshuflw xmm3, xmm1, 0x4e
paddd xmm3, xmm1
psrad xmm3, xmm0
movaps xmm0, xmm5
paddd xmm3, xmm6
palignr xmm3, xmmword [ebp - 0x40], 4
pmulld xmm0, xmm3
pshufd xmm1, xmm0, 0x4e
paddd xmm1, xmm0
movd xmm0, eax
pshuflw xmm4, xmm1, 0x4e
paddd xmm4, xmm1
psrad xmm4, xmm0
movaps xmm0, xmm5
paddd xmm4, xmm2
palignr xmm4, xmm3, 4
xorps xmm3, xmm3
pmulld xmm0, xmm4
pshufd xmm1, xmm0, 0x4e
paddd xmm1, xmm0
palignr xmm3, xmm2, 4
pshuflw xmm2, xmm1, 0x4e
paddd xmm2, xmm1
movd xmm0, eax
psrad xmm2, xmm0
movaps xmm0, xmm5
paddd xmm2, xmm3
palignr xmm2, xmm4, 4
pmulld xmm0, xmm2
pshufd xmm1, xmm0, 0x4e
paddd xmm1, xmm0
movd xmm0, eax
pshuflw xmm6, xmm1, 0x4e
paddd xmm6, xmm1
psrad xmm6, xmm0
xorps xmm0, xmm0
palignr xmm0, xmm3, 4
paddd xmm6, xmm0
palignr xmm6, xmm2, 4
jmp 0x43db47
cmp ecx, 8
ja 0x43d98d
movaps xmm3, xmmword [ebp - 0x40]
movaps xmm1, xmmword [ebp - 0x80]
movaps xmm2, xmm3
pmulld xmm1, xmmword [ebp - 0x60]
movaps xmm0, xmmword [ebp - 0xa0]
pmulld xmm0, xmm3
paddd xmm1, xmm0
palignr xmm2, xmmword [ebp - 0x60], 4
pshufd xmm0, xmm1, 0x4e
paddd xmm0, xmm1
movaps xmm1, xmmword [ebp - 0x80]
pshuflw xmm5, xmm0, 0x4e
paddd xmm5, xmm0
movd xmm0, eax
psrad xmm5, xmm0
movaps xmm0, xmmword [ebp - 0xa0]
paddd xmm5, xmm6
palignr xmm5, xmm3, 4
xorps xmm3, xmm3
pmulld xmm0, xmm5
pmulld xmm1, xmm2
paddd xmm1, xmm0
palignr xmm3, xmm6, 4
pshufd xmm0, xmm1, 0x4e
movaps xmm4, xmm5
paddd xmm0, xmm1
palignr xmm4, xmm2, 4
movaps xmm1, xmmword [ebp - 0x80]
pshuflw xmm6, xmm0, 0x4e
paddd xmm6, xmm0
movd xmm0, eax
psrad xmm6, xmm0
movaps xmm0, xmmword [ebp - 0xa0]
paddd xmm6, xmm3
palignr xmm6, xmm5, 4
xorps xmm5, xmm5
pmulld xmm0, xmm6
pmulld xmm1, xmm4
paddd xmm1, xmm0
palignr xmm5, xmm3, 4
pshufd xmm0, xmm1, 0x4e
movaps xmm2, xmm6
paddd xmm0, xmm1
palignr xmm2, xmm4, 4
movaps xmm1, xmmword [ebp - 0x80]
pshuflw xmm3, xmm0, 0x4e
paddd xmm3, xmm0
movd xmm0, eax
psrad xmm3, xmm0
movaps xmm0, xmmword [ebp - 0xa0]
paddd xmm3, xmm5
palignr xmm3, xmm6, 4
pmulld xmm0, xmm3
pmulld xmm1, xmm2
paddd xmm1, xmm0
pshufd xmm0, xmm1, 0x4e
paddd xmm0, xmm1
movaps xmm1, xmm3
pshuflw xmm6, xmm0, 0x4e
paddd xmm6, xmm0
palignr xmm1, xmm2, 4
movd xmm0, eax
psrad xmm6, xmm0
xorps xmm0, xmm0
palignr xmm0, xmm5, 4
paddd xmm6, xmm0
palignr xmm6, xmm3, 4
jmp 0x43db43
movaps xmm5, xmmword [ebp - 0x60]
movaps xmm1, xmmword [ebp - 0xb0]
movaps xmm2, xmm5
pmulld xmm1, xmmword [ebp - 0x90]
movaps xmm0, xmmword [ebp - 0x80]
movaps xmm4, xmmword [ebp - 0x40]
pmulld xmm0, xmm5
paddd xmm1, xmm0
palignr xmm2, xmmword [ebp - 0x90], 4
movaps xmm0, xmmword [ebp - 0xa0]
movaps xmm3, xmm4
pmulld xmm0, xmm4
paddd xmm1, xmm0
palignr xmm3, xmm5, 4
pshufd xmm0, xmm1, 0x4e
movaps xmm5, xmm3
paddd xmm0, xmm1
palignr xmm5, xmm2, 4
movaps xmm1, xmmword [ebp - 0xb0]
pshuflw xmm7, xmm0, 0x4e
paddd xmm7, xmm0
movd xmm0, eax
psrad xmm7, xmm0
movaps xmm0, xmmword [ebp - 0x80]
pmulld xmm0, xmm3
pmulld xmm1, xmm2
paddd xmm1, xmm0
paddd xmm7, xmm6
movaps xmm0, xmmword [ebp - 0xa0]
palignr xmm7, xmm4, 4
xorps xmm4, xmm4
pmulld xmm0, xmm7
paddd xmm1, xmm0
palignr xmm4, xmm6, 4
pshufd xmm0, xmm1, 0x4e
movaps xmm6, xmm7
paddd xmm0, xmm1
palignr xmm6, xmm3, 4
movaps xmm1, xmmword [ebp - 0xb0]
movaps xmm2, xmm6
pshuflw xmm3, xmm0, 0x4e
paddd xmm3, xmm0
palignr xmm2, xmm5, 4
pmulld xmm1, xmm5
movd xmm0, eax
psrad xmm3, xmm0
movaps xmm0, xmmword [ebp - 0x80]
pmulld xmm0, xmm6
paddd xmm1, xmm0
paddd xmm3, xmm4
movaps xmm0, xmmword [ebp - 0xa0]
palignr xmm3, xmm7, 4
xorps xmm7, xmm7
pmulld xmm0, xmm3
paddd xmm1, xmm0
palignr xmm7, xmm4, 4
pshufd xmm0, xmm1, 0x4e
paddd xmm0, xmm1
movaps xmmword [ebp - 0x90], xmm3
movaps xmm1, xmmword [ebp - 0xb0]
pshuflw xmm4, xmm0, 0x4e
paddd xmm4, xmm0
palignr xmm3, xmm6, 4
movd xmm0, eax
psrad xmm4, xmm0
movaps xmm0, xmmword [ebp - 0x80]
pmulld xmm1, xmm2
pmulld xmm0, xmm3
paddd xmm1, xmm0
paddd xmm4, xmm7
palignr xmm4, xmmword [ebp - 0x90], 4
movaps xmm0, xmmword [ebp - 0xa0]
pmulld xmm0, xmm4
paddd xmm1, xmm0
pshufd xmm0, xmm1, 0x4e
paddd xmm0, xmm1
movaps xmm1, xmm3
palignr xmm1, xmm2, 4
movaps xmmword [ebp - 0x90], xmm1
movaps xmm1, xmm4
palignr xmm1, xmm3, 4
pshuflw xmm6, xmm0, 0x4e
paddd xmm6, xmm0
movd xmm0, eax
psrad xmm6, xmm0
xorps xmm0, xmm0
palignr xmm0, xmm7, 4
paddd xmm6, xmm0
palignr xmm6, xmm4, 4
movaps xmmword [ebp - 0x60], xmm1
mov edx, dword [ebx + 0x18]
movaps xmmword [ebp - 0x40], xmm6
movups xmmword [edx], xmm6
add edx, 0x10
mov dword [ebx + 0x18], edx
cmp edx, dword [ebp - 0x48]
jb 0x43c7f0
jmp 0x43db65
mov edi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x68]
cmp dword [ebp - 0x44], eax
jge 0x43e17a
lea ecx, [edi + 1]
mov eax, 0x20
sub eax, ecx
mov dword [ebp - 0x48], eax
nop
cmp dword [0x593874], 0
mov edx, dword [esi + 0x101c]
mov edi, dword [esi + 0x18]
je 0x43db98
lzcnt ecx, edx
jmp 0x43dbab
test edx, edx
jne 0x43dba1
lea ecx, [edx + 0x20]
jmp 0x43dbab
bsr eax, edx
mov ecx, 0x1f
sub ecx, eax
cmp ecx, 0x20
jae 0x43dbb8
mov dword [ebp - 0x10], ecx
jmp 0x43dd75
mov eax, 0x20
sub eax, edi
mov dword [ebp - 0x10], eax
nop dword [eax]
nop word [eax + eax]
mov edi, dword [esi + 0x14]
cmp edi, 0x400
jae 0x43dd2f
mov ecx, dword [esi + 0x1028]
mov eax, dword [esi + 0x1024]
movzx edx, word [esi + 0x1020]
test ecx, ecx
jne 0x43dc6d
mov edi, dword [esi + 0x1024]
mov ecx, edx
shr eax, 0x18
shr ecx, 8
xor ecx, eax
shl edx, 8
mov eax, edi
shr eax, 0x10
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
movzx ecx, al
mov eax, edx
shr eax, 8
xor ecx, eax
shl edx, 8
mov eax, edi
shr eax, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
movzx ecx, al
mov eax, edx
shr eax, 8
xor ecx, eax
shl edx, 8
mov eax, edi
mov edi, dword [esi + 0x14]
movzx eax, al
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov ecx, edx
shl edx, 8
shr ecx, 8
xor ecx, eax
xor dx, word [ecx*2 + 0x4eda90]
jmp 0x43dd0f
mov eax, 3
sub eax, ecx
cmp eax, 3
ja case.default.0x43dc7d
jmp dword [eax*4 + 0x43e214]
mov eax, dword [esi + 0x1024]
mov ecx, edx
shr ecx, 8
shr eax, 0x18
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
shr eax, 0x10
movzx ecx, al
movzx eax, dx
shr eax, 8
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
shr eax, 8
movzx ecx, al
movzx eax, dx
shr eax, 8
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
movzx ecx, dx
shr ecx, 8
movzx eax, al
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov dword [esi + 0x1028], 0
movzx eax, dx
mov word [esi + 0x1020], ax
lea eax, [edi + 1]
mov edx, dword [esi + edi*4 + 0x1c]
xor edi, edi
bswap edx
mov dword [esi + 0x14], eax
mov dword [esi + 0x1024], edx
jmp 0x43dd47
mov ecx, esi
call fcn.00437160
test eax, eax
je 0x43e188
mov edx, dword [esi + 0x101c]
mov edi, dword [esi + 0x18]
cmp dword [0x593874], 0
je 0x43dd56
lzcnt ecx, edx
jmp 0x43dd69
test edx, edx
jne 0x43dd5f
lea ecx, [edx + 0x20]
jmp 0x43dd69
bsr eax, edx
mov ecx, 0x1f
sub ecx, eax
add dword [ebp - 0x10], ecx
cmp ecx, 0x20
jae 0x43dbd0
shl edx, cl
add edi, ecx
mov ecx, dword [ebp - 0x48]
mov eax, edx
shr eax, cl
cmp edi, ecx
ja 0x43dd94
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x64]
inc ecx
shl edx, cl
add edi, ecx
jmp 0x43df38
sub edi, ecx
mov dword [ebp - 4], eax
cmp dword [esi + 0x14], 0x400
mov dword [ebp - 8], edi
jae 0x43defb
mov ecx, dword [esi + 0x1028]
mov eax, dword [esi + 0x1024]
movzx edx, word [esi + 0x1020]
test ecx, ecx
jne 0x43de3a
mov ecx, edx
shr eax, 0x18
shr ecx, 8
xor ecx, eax
shl edx, 8
mov eax, dword [esi + 0x1024]
shr eax, 0x10
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
movzx ecx, al
mov eax, edx
shr eax, 8
xor ecx, eax
shl edx, 8
mov eax, dword [esi + 0x1024]
shr eax, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
movzx ecx, al
mov eax, edx
shr eax, 8
xor ecx, eax
shl edx, 8
mov eax, dword [esi + 0x1024]
movzx eax, al
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov ecx, edx
shl edx, 8
shr ecx, 8
xor ecx, eax
xor dx, word [ecx*2 + 0x4eda90]
jmp 0x43dedc
mov eax, 3
sub eax, ecx
cmp eax, 3
ja case.default.0x43de4a
jmp dword [eax*4 + 0x43e224]
mov eax, dword [esi + 0x1024]
mov ecx, edx
shr ecx, 8
shr eax, 0x18
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
shr eax, 0x10
movzx ecx, al
movzx eax, dx
shr eax, 8
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
shr eax, 8
movzx ecx, al
movzx eax, dx
shr eax, 8
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov eax, dword [esi + 0x1024]
movzx ecx, dx
shr ecx, 8
movzx eax, al
xor ecx, eax
shl edx, 8
xor dx, word [ecx*2 + 0x4eda90]
movzx edx, dx
mov dword [esi + 0x1028], 0
movzx eax, dx
mov word [esi + 0x1020], ax
mov eax, dword [esi + 0x14]
mov edx, dword [esi + eax*4 + 0x1c]
inc eax
bswap edx
mov dword [esi + 0x14], eax
mov dword [esi + 0x1024], edx
jmp 0x43df24
mov ecx, esi
call fcn.00437160
test eax, eax
je 0x43e188
mov ecx, dword [esi + 0x18]
mov eax, 0x20
sub eax, ecx
cmp edi, eax
ja 0x43e188
mov edx, dword [esi + 0x101c]
add edi, ecx
mov ecx, 0x20
mov eax, edx
sub ecx, dword [ebp - 8]
shr eax, cl
mov ecx, dword [ebp - 8]
shl edx, cl
or eax, dword [ebp - 4]
and eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xc]
mov dword [esi + 0x101c], edx
mov edx, dword [ebp - 0x10]
shl edx, cl
or eax, edx
mov dword [esi + 0x18], edi
mov dword [ebp - 8], eax
xor edx, edx
mov edi, dword [ebp - 8]
and eax, 1
shr edi, 1
xor edi, dword [ebp + eax*4 - 0xbc]
mov eax, dword [ebx + 0xc]
dec eax
cmp eax, 0x1f
ja case.default.0x43df72
jmp dword [eax*4 + 0x43e234]
mov ecx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x14]
mov edx, dword [ecx - 0x80]
imul edx, dword [eax + 0x7c]
jmp 0x43df8b
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0x7c]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 0x78]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0x78]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 0x74]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0x74]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 0x70]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0x70]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 0x6c]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0x6c]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 0x68]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0x68]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 0x64]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0x64]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 0x60]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0x60]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 0x5c]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0x5c]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 0x58]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0x58]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 0x54]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0x54]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 0x50]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0x50]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 0x4c]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0x4c]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 0x48]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0x48]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 0x44]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0x44]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 0x40]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0x40]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 0x3c]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0x3c]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 0x38]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0x38]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 0x34]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0x34]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 0x30]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0x30]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 0x2c]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0x2c]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 0x28]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0x28]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 0x24]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0x24]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 0x20]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0x20]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 0x1c]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0x1c]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 0x18]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0x18]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 0x14]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0x14]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 0x10]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0x10]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 0xc]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 0xc]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 8]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 8]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx + 4]
add edx, eax
mov ecx, dword [ebx + 0x18]
mov eax, dword [ecx - 4]
mov ecx, dword [ebx + 0x14]
imul eax, dword [ecx]
add edx, eax
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x10]
sar edx, cl
mov ecx, dword [ebp - 0x44]
add edx, edi
inc ecx
mov dword [eax], edx
add eax, 4
mov dword [ebp - 0x44], ecx
mov dword [ebx + 0x18], eax
cmp ecx, dword [ebp - 0x68]
jl 0x43db80
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret