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

Disassembly:
sub esp, 0x10c
mov eax, dword [0x424004]
xor eax, esp
mov dword [esp + 0x104], eax
push ebx
mov ebx, dword [esp + 0x114]
push ebp
push esi
mov esi, dword [esp + 0x120]
push edi
mov edi, edx
mov edx, ecx
add ebx, edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x54], edx
mov ebp, edi
mov dword [esp + 0x48], edi
mov eax, dword [edx + 0x7368]
mov edi, dword [edx + 0x7378]
mov ecx, dword [edx + 0x72b0]
add edi, eax
cmp dword [esp + 0x12c], 0
mov edx, dword [edx + 0x72b4]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x40], edi
mov edx, dword [edx + 0x72b8]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x4c], edx
je 0x409146
mov ebx, dword [esp + 0x54]
mov edi, 4
cmp dword [esp + 0x12c], edi
push dword [esp + 0x128]
cmovl edi, dword [esp + 0x130]
mov dword [ebx + 0x72fc], 1
mov eax, dword [ebx + 0x682c]
mov dword [esp + 0xb8], eax
mov eax, dword [ebx + 0x6830]
mov dword [esp + 0xbc], eax
mov eax, dword [ebx + 0x6834]
mov dword [esp + 0xc0], eax
mov eax, ebp
sub eax, ecx
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], edx
lea ecx, [esp + 0x8c]
mov edx, esi
mov dword [esp + 0x34], edi
mov dword [esp + 0xcc], eax
call fcn.00401090
add esp, 4
cmp eax, 0xffffff88
ja 0x408e52
push dword [ebx]
lea edx, [esp + 0x8c]
lea ecx, [esp + 0xa0]
call fcn.00407a50
add esp, 4
lea edx, [esp + 0x88]
lea ecx, [esp + 0xa4]
push dword [ebx + 8]
call fcn.00407a50
add esp, 4
lea edx, [esp + 0x88]
lea ecx, [esp + 0xac]
push dword [ebx + 4]
call fcn.00407a50
add esp, 4
lea ecx, [esp + 0x88]
xor ebx, ebx
mov dword [esp + 0x28], ebx
call fcn.004011f0
cmp eax, 2
jg 0x4087c2
lea eax, [esp + 0xd0]
mov dword [esp + 0x20], eax
nop dword [eax + eax]
cmp ebx, edi
jge 0x4087ca
mov ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0x9c]
mov ebx, dword [ecx + eax*8]
mov edx, dword [ecx + eax*8 + 4]
mov ecx, ebx
mov eax, edx
mov dword [esp + 0x38], ebx
shrd ecx, eax, 0x10
mov eax, dword [esp + 0xac]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x70], ebx
mov dword [esp + 0x1c], edx
mov ebx, dword [ecx + eax*8]
mov edi, dword [ecx + eax*8 + 4]
mov ecx, ebx
mov eax, edi
mov dword [esp + 0x3c], ebx
shrd ecx, eax, 0x10
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x78], ebx
mov dword [esp + 0x14], edi
mov esi, dword [ecx + eax*8]
mov ebx, dword [ecx + eax*8 + 4]
mov ecx, esi
mov eax, ebx
mov dword [esp + 0x10], esi
shrd ecx, eax, 0x10
mov dword [esp + 0x68], ebx
mov dword [esp + 0x80], esi
cmp cl, 1
jbe 0x40855f
cmp dword [esp + 0x130], 0
je 0x4084ff
cmp cl, 0x19
jb 0x4084ff
mov esi, dword [esp + 0x8c]
mov eax, 0x20
mov ebx, dword [esp + 0x88]
sub eax, esi
movzx edi, cl
mov ecx, esi
cmp edi, eax
mov edx, edi
cmovae edx, eax
and ecx, 0x1f
shl ebx, cl
sub edi, edx
mov ecx, edx
add esi, edx
neg ecx
mov dword [esp + 0x8c], esi
and ecx, 0x1f
shr ebx, cl
mov ecx, edi
shl ebx, cl
lea ecx, [esp + 0x88]
add ebx, dword [esp + 0x68]
call fcn.004011f0
mov esi, dword [esp + 0x8c]
test edi, edi
je 0x4084f9
mov eax, dword [esp + 0x88]
mov ecx, esi
and ecx, 0x1f
add esi, edi
shl eax, cl
mov ecx, edi
neg ecx
mov dword [esp + 0x8c], esi
and ecx, 0x1f
shr eax, cl
add ebx, eax
mov edi, dword [esp + 0x14]
jmp 0x40853e
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
movzx esi, cl
mov ecx, edx
and ecx, 0x1f
add edx, esi
shl eax, cl
mov ecx, esi
neg ecx
mov dword [esp + 0x8c], edx
and ecx, 0x1f
shr eax, cl
lea ecx, [esp + 0x88]
add ebx, eax
call fcn.004011f0
mov esi, dword [esp + 0x8c]
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0xb8], eax
jmp 0x4085fc
mov esi, dword [esp + 0x8c]
xor ebx, ebx
test edx, edx
sete bl
test cl, cl
jne 0x408598
test edx, edx
je 0x408581
mov ebx, dword [esp + 0xb4]
jmp 0x408603
mov ebx, dword [esp + 0xb8]
mov eax, dword [esp + 0xb4]
mov dword [esp + 0xb8], eax
jmp 0x4085fc
mov eax, dword [esp + 0x88]
mov ecx, esi
mov edx, dword [esp + 0xb4]
and ecx, 0x1f
shl eax, cl
inc esi
shr eax, 0x1f
mov dword [esp + 0x8c], esi
lea ecx, [eax + ebx]
add ecx, dword [esp + 0x68]
cmp ecx, 3
jne 0x4085d2
lea eax, [edx - 1]
xor ebx, ebx
test eax, eax
sete bl
add ebx, eax
jmp 0x4085e7
mov eax, dword [esp + ecx*4 + 0xb4]
xor ebx, ebx
test eax, eax
sete bl
add ebx, eax
cmp ecx, 1
je 0x4085f5
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb8], edx
mov dword [esp + 0xb4], ebx
mov eax, dword [esp + 0x44]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x5c], edi
test al, al
je 0x408644
movzx edx, al
mov ecx, esi
mov eax, dword [esp + 0x88]
add esi, edx
and ecx, 0x1f
mov dword [esp + 0x8c], esi
neg edx
shl eax, cl
and edx, 0x1f
mov ecx, edx
shr eax, cl
add edi, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x14], edi
mov dword [esp + 0x5c], edi
mov ecx, dword [esp + 0x34]
movzx edi, cl
movzx eax, al
add eax, edi
cmp eax, 0x14
jb 0x408668
lea ecx, [esp + 0x88]
call fcn.004011f0
mov esi, dword [esp + 0x8c]
cmp byte [esp + 0x34], 0
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x58], edx
jbe 0x4086a1
mov eax, dword [esp + 0x88]
mov ecx, esi
add esi, edi
and ecx, 0x1f
neg edi
shl eax, cl
and edi, 0x1f
mov dword [esp + 0x8c], esi
mov ecx, edi
shr eax, cl
add edx, eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x58], edx
lea ecx, [esp + 0x88]
call fcn.004011f0
mov ecx, dword [esp + 0x1c]
add ecx, dword [esp + 0xc8]
mov eax, dword [esp + 0xc0]
cmp ebx, ecx
mov edi, dword [esp + 0x8c]
cmova eax, dword [esp + 0xc4]
movzx esi, byte [esp + 0x73]
sub eax, ebx
mov ebx, dword [esp + 0x88]
add eax, ecx
mov dword [esp + 0x64], eax
add edi, esi
mov eax, dword [esp + 0x14]
mov edx, ebx
add eax, ecx
mov ecx, edi
neg ecx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x38]
and ecx, 0x1f
shr edx, cl
and edx, dword [esi*4 + 0x4220c0]
movzx eax, ax
add edx, eax
movzx eax, byte [esp + 0x7b]
mov dword [esp + 0x9c], edx
lea ecx, [eax + edi]
mov dword [esp + 0x8c], ecx
neg ecx
and ecx, 0x1f
shr ebx, cl
lea ecx, [esp + 0x88]
and ebx, dword [eax*4 + 0x4220c0]
mov eax, dword [esp + 0x3c]
movzx eax, ax
add ebx, eax
mov dword [esp + 0xac], ebx
call fcn.004011f0
movzx esi, byte [esp + 0x83]
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x88]
add eax, esi
movups xmm0, xmmword [esp + 0x58]
mov ebx, dword [esp + 0x28]
mov ecx, eax
neg ecx
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x10]
and ecx, 0x1f
shr edx, cl
inc ebx
and edx, dword [esi*4 + 0x4220c0]
lea ecx, [esp + 0x88]
mov esi, dword [esp + 0x20]
movzx eax, ax
add eax, edx
mov dword [esp + 0x28], ebx
mov dword [esp + 0xa4], eax
movups xmmword [esi], xmm0
add esi, 0x10
mov dword [esp + 0x20], esi
call fcn.004011f0
mov edi, dword [esp + 0x30]
cmp eax, 2
jle 0x4083d0
cmp ebx, edi
jl 0x408e52
lea ecx, [esp + 0x88]
call fcn.004011f0
cmp eax, 2
jg 0x408e47
nop
mov eax, dword [esp + 0x12c]
cmp ebx, eax
jge 0x408e68
mov ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0x9c]
mov ebx, dword [ecx + eax*8]
mov edx, dword [ecx + eax*8 + 4]
mov ecx, ebx
mov eax, edx
mov dword [esp + 0x10], ebx
shrd ecx, eax, 0x10
mov eax, dword [esp + 0xac]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x80], ebx
mov dword [esp + 0x1c], edx
mov ebx, dword [ecx + eax*8]
mov edi, dword [ecx + eax*8 + 4]
mov ecx, ebx
mov eax, edi
mov dword [esp + 0x3c], ebx
shrd ecx, eax, 0x10
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x78], ebx
mov dword [esp + 0x14], edi
mov esi, dword [ecx + eax*8]
mov ebx, dword [ecx + eax*8 + 4]
mov ecx, esi
mov eax, ebx
mov dword [esp + 0x38], esi
shrd ecx, eax, 0x10
mov dword [esp + 0x20], ebx
mov dword [esp + 0x70], esi
cmp cl, 1
jbe 0x408976
cmp dword [esp + 0x130], 0
je 0x408916
cmp cl, 0x19
jb 0x408916
mov esi, dword [esp + 0x8c]
mov eax, 0x20
mov ebx, dword [esp + 0x88]
sub eax, esi
movzx edi, cl
mov ecx, esi
cmp edi, eax
mov edx, edi
cmovae edx, eax
and ecx, 0x1f
shl ebx, cl
sub edi, edx
mov ecx, edx
add esi, edx
neg ecx
mov dword [esp + 0x8c], esi
and ecx, 0x1f
shr ebx, cl
mov ecx, edi
shl ebx, cl
lea ecx, [esp + 0x88]
add ebx, dword [esp + 0x20]
call fcn.004011f0
mov esi, dword [esp + 0x8c]
test edi, edi
je 0x408910
mov eax, dword [esp + 0x88]
mov ecx, esi
and ecx, 0x1f
add esi, edi
shl eax, cl
mov ecx, edi
neg ecx
mov dword [esp + 0x8c], esi
and ecx, 0x1f
shr eax, cl
add ebx, eax
mov edi, dword [esp + 0x14]
jmp 0x408955
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
movzx esi, cl
mov ecx, edx
and ecx, 0x1f
add edx, esi
shl eax, cl
mov ecx, esi
neg ecx
mov dword [esp + 0x8c], edx
and ecx, 0x1f
shr eax, cl
lea ecx, [esp + 0x88]
add ebx, eax
call fcn.004011f0
mov esi, dword [esp + 0x8c]
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0xb8], eax
jmp 0x408a13
mov esi, dword [esp + 0x8c]
xor ebx, ebx
test edx, edx
sete bl
test cl, cl
jne 0x4089af
test edx, edx
je 0x408998
mov ebx, dword [esp + 0xb4]
jmp 0x408a1a
mov ebx, dword [esp + 0xb8]
mov eax, dword [esp + 0xb4]
mov dword [esp + 0xb8], eax
jmp 0x408a13
mov eax, dword [esp + 0x88]
mov ecx, esi
mov edx, dword [esp + 0xb4]
and ecx, 0x1f
shl eax, cl
inc esi
shr eax, 0x1f
mov dword [esp + 0x8c], esi
lea ecx, [eax + ebx]
add ecx, dword [esp + 0x20]
cmp ecx, 3
jne 0x4089e9
lea eax, [edx - 1]
xor ebx, ebx
test eax, eax
sete bl
add ebx, eax
jmp 0x4089fe
mov eax, dword [esp + ecx*4 + 0xb4]
xor ebx, ebx
test eax, eax
sete bl
add ebx, eax
cmp ecx, 1
je 0x408a0c
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb8], edx
mov dword [esp + 0xb4], ebx
mov eax, dword [esp + 0x34]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x5c], edi
test al, al
je 0x408a5b
movzx edx, al
mov ecx, esi
mov eax, dword [esp + 0x88]
add esi, edx
and ecx, 0x1f
mov dword [esp + 0x8c], esi
neg edx
shl eax, cl
and edx, 0x1f
mov ecx, edx
shr eax, cl
add edi, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], edi
mov dword [esp + 0x5c], edi
mov ecx, dword [esp + 0x44]
movzx edi, cl
movzx eax, al
add eax, edi
cmp eax, 0x14
jb 0x408a7f
lea ecx, [esp + 0x88]
call fcn.004011f0
mov esi, dword [esp + 0x8c]
cmp byte [esp + 0x44], 0
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x58], edx
jbe 0x408ab8
mov eax, dword [esp + 0x88]
mov ecx, esi
add esi, edi
and ecx, 0x1f
neg edi
shl eax, cl
and edi, 0x1f
mov dword [esp + 0x8c], esi
mov ecx, edi
shr eax, cl
add edx, eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x58], edx
lea ecx, [esp + 0x88]
call fcn.004011f0
mov ecx, dword [esp + 0x1c]
add ecx, dword [esp + 0xc8]
mov eax, dword [esp + 0xc0]
cmp ebx, ecx
mov edi, dword [esp + 0x8c]
cmova eax, dword [esp + 0xc4]
movzx esi, byte [esp + 0x83]
sub eax, ebx
mov ebx, dword [esp + 0x88]
add eax, ecx
mov dword [esp + 0x64], eax
add edi, esi
mov eax, dword [esp + 0x14]
mov edx, ebx
add eax, ecx
mov ecx, edi
neg ecx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x10]
and ecx, 0x1f
shr edx, cl
and edx, dword [esi*4 + 0x4220c0]
movzx eax, ax
add edx, eax
movzx eax, byte [esp + 0x7b]
mov dword [esp + 0x9c], edx
lea ecx, [eax + edi]
mov dword [esp + 0x8c], ecx
neg ecx
and ecx, 0x1f
shr ebx, cl
lea ecx, [esp + 0x88]
and ebx, dword [eax*4 + 0x4220c0]
mov eax, dword [esp + 0x3c]
movzx eax, ax
add ebx, eax
mov dword [esp + 0xac], ebx
call fcn.004011f0
movzx esi, byte [esp + 0x73]
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x88]
add eax, esi
mov ecx, eax
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x38]
neg ecx
and ecx, 0x1f
movzx eax, ax
shr edx, cl
lea ecx, [esp + 0xd0]
and edx, dword [esi*4 + 0x4220c0]
add eax, edx
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x28]
and eax, 3
shl eax, 4
add eax, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x14], eax
movups xmm1, xmmword [eax]
movd eax, xmm1
movaps xmm0, xmm1
psrldq xmm0, 4
movd edx, xmm0
add ecx, eax
psrldq xmm1, 8
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], edx
lea ebx, [eax + ebp]
mov dword [esp + 0x3c], ecx
mov edi, ebx
lea esi, [edx + eax]
movd eax, xmm1
mov dword [esp + 0x38], esi
sub edi, eax
mov dword [esp + 0x20], eax
cmp ecx, dword [esp + 0x40]
ja 0x408dde
mov eax, dword [esp + 0x2c]
lea ecx, [esi + ebp]
add eax, 0xffffffe0
cmp ecx, eax
ja 0x408dde
mov ecx, dword [esp + 0x2c]
lea eax, [esi + 0x20]
sub ecx, ebp
cmp ecx, eax
jb 0x408dde
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
movups xmm0, xmmword [eax]
movups xmmword [ebp], xmm0
cmp ecx, 0x10
jbe 0x408c83
mov edx, dword [esp + 0x18]
lea eax, [ebp + 0x10]
add ecx, 0xfffffff0
movups xmm0, xmmword [edx + 0x10]
lea ebp, [eax + ecx]
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x48]
movups xmmword [eax], xmm0
cmp ecx, 0x10
jle 0x408c7f
mov ecx, dword [esp + 0x10]
add eax, 0x10
add edx, 0x20
movups xmm0, xmmword [edx]
lea edx, [edx + 0x20]
movups xmmword [eax], xmm0
movups xmm0, xmmword [edx - 0x10]
movups xmmword [eax + 0x10], xmm0
add eax, 0x20
cmp eax, ecx
jb 0x408c67
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x18], eax
mov eax, ebx
sub eax, dword [esp + 0x24]
cmp ecx, eax
jbe 0x408cf1
mov eax, ebx
sub eax, dword [esp + 0x50]
cmp ecx, eax
ja 0x408e5c
mov ecx, dword [esp + 0x4c]
mov eax, ecx
sub eax, dword [esp + 0x24]
add edi, eax
lea eax, [edi + edx]
cmp eax, ecx
ja 0x408cce
push edx
push edi
push ebx
call fcn.0040be80
mov edi, dword [esp + 0x20]
add esp, 0xc
jmp 0x408e12
mov esi, ecx
sub esi, edi
push esi
push edi
push ebx
call fcn.0040be80
mov edx, dword [esp + 0x28]
add ebx, esi
mov edi, dword [esp + 0x30]
add esp, 0xc
mov ecx, dword [esp + 0x20]
sub edx, esi
mov esi, dword [esp + 0x38]
cmp ecx, 0x10
jb 0x408d33
lea eax, [edx + ebx]
mov dword [esp + 0x10], eax
movups xmm0, xmmword [edi]
movups xmmword [ebx], xmm0
cmp edx, 0x10
jle 0x408d2a
mov edx, dword [esp + 0x10]
lea eax, [ebx + 0x10]
lea ecx, [edi + 0x10]
movups xmm0, xmmword [ecx]
lea ecx, [ecx + 0x20]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx - 0x10]
movups xmmword [eax + 0x10], xmm0
add eax, 0x20
cmp eax, edx
jb 0x408d12
mov edi, dword [esp + 0x14]
jmp 0x408e12
cmp ecx, 8
jae 0x408d64
movzx eax, byte [edi]
mov byte [ebx], al
movzx eax, byte [edi + 1]
mov byte [ebx + 1], al
movzx eax, byte [edi + 2]
mov byte [ebx + 2], al
movzx eax, byte [edi + 3]
add edi, dword [ecx*4 + 0x4226f0]
mov byte [ebx + 3], al
mov eax, dword [edi]
sub edi, dword [ecx*4 + str._b_b_b_a_b_t_n_v]
jmp 0x408d6b
mov eax, dword [edi]
mov dword [ebx], eax
mov eax, dword [edi + 4]
mov dword [ebx + 4], eax
cmp edx, 8
jbe 0x408d2a
lea eax, [edx - 8]
add edi, 8
lea ecx, [ebx + 8]
mov dword [esp + 0x10], eax
lea edx, [ecx + eax]
mov eax, ecx
sub eax, edi
cmp eax, 0x10
jge 0x408da9
sub edi, ecx
nop
mov eax, dword [ecx + edi]
mov dword [ecx], eax
mov eax, dword [ecx + edi + 4]
mov dword [ecx + 4], eax
add ecx, 8
cmp ecx, edx
jb 0x408d90
mov edi, dword [esp + 0x14]
jmp 0x408e12
cmp dword [esp + 0x10], 0x10
movups xmm0, xmmword [edi]
movups xmmword [ecx], xmm0
jle 0x408d2a
add ecx, 0x10
lea eax, [edi + 0x10]
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [eax - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, edx
jb 0x408dc0
mov edi, dword [esp + 0x14]
jmp 0x408e12
push dword [esp + 0x4c]
mov edi, dword [esp + 0x18]
lea eax, [esp + 0x1c]
push dword [esp + 0x54]
mov edx, dword [esp + 0x34]
mov ecx, ebp
push dword [esp + 0x2c]
movups xmm0, xmmword [edi]
push dword [esp + 0x4c]
push eax
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
call fcn.00407950
add esp, 0x24
mov esi, eax
cmp esi, 0xffffff88
ja 0x408e61
movups xmm0, xmmword [esp + 0x58]
mov ebx, dword [esp + 0x28]
lea ecx, [esp + 0x88]
add ebp, esi
inc ebx
movups xmmword [edi], xmm0
mov dword [esp + 0x48], ebp
mov dword [esp + 0x28], ebx
call fcn.004011f0
cmp eax, 2
jle 0x4087e0
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x12c]
cmp ebx, eax
jge 0x408e6c
mov eax, 0xffffffec
jmp 0x40916c
mov esi, 0xffffffec
mov eax, esi
jmp 0x40916c
mov edi, dword [esp + 0x30]
sub ebx, edi
mov dword [esp + 0x28], ebx
cmp ebx, eax
jge 0x40910f
nop word [eax + eax]
mov eax, ebx
lea ecx, [esp + 0xd0]
and eax, 3
shl eax, 4
add eax, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x34], eax
movups xmm1, xmmword [eax]
movd eax, xmm1
movaps xmm0, xmm1
psrldq xmm0, 4
movd edx, xmm0
add ecx, eax
psrldq xmm1, 8
mov dword [esp + 0x10], eax
mov dword [esp + 0x30], edx
lea ebx, [eax + ebp]
mov dword [esp + 0x38], ecx
mov edi, ebx
mov dword [esp + 0x3c], ebx
lea esi, [edx + eax]
movd eax, xmm1
mov dword [esp + 0x20], esi
sub edi, eax
mov dword [esp + 0x48], eax
cmp ecx, dword [esp + 0x40]
ja 0x4090ba
mov eax, dword [esp + 0x2c]
lea ecx, [esi + ebp]
add eax, 0xffffffe0
cmp ecx, eax
ja 0x4090ba
mov ecx, dword [esp + 0x2c]
lea eax, [esi + 0x20]
sub ecx, ebp
cmp ecx, eax
jb 0x4090ba
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
movups xmm0, xmmword [eax]
movups xmmword [ebp], xmm0
cmp ecx, 0x10
jbe 0x408f61
mov edx, dword [esp + 0x18]
lea eax, [ebp + 0x10]
add ecx, 0xfffffff0
movups xmm0, xmmword [edx + 0x10]
lea ebx, [eax + ecx]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x3c]
movups xmmword [eax], xmm0
cmp ecx, 0x10
jle 0x408f5d
mov ecx, dword [esp + 0x10]
add eax, 0x10
add edx, 0x20
movups xmm0, xmmword [edx]
lea edx, [edx + 0x20]
movups xmmword [eax], xmm0
movups xmm0, xmmword [edx - 0x10]
movups xmmword [eax + 0x10], xmm0
add eax, 0x20
cmp eax, ecx
jb 0x408f45
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x18], eax
mov eax, ebx
sub eax, dword [esp + 0x24]
cmp ecx, eax
jbe 0x408fcb
mov eax, ebx
sub eax, dword [esp + 0x50]
cmp ecx, eax
ja 0x408e5c
mov ecx, dword [esp + 0x4c]
mov eax, ecx
sub eax, dword [esp + 0x24]
add edi, eax
lea eax, [edi + edx]
cmp eax, ecx
ja 0x408fa8
push edx
push edi
push ebx
call fcn.0040be80
add esp, 0xc
jmp 0x4090ee
mov esi, ecx
sub esi, edi
push esi
push edi
push ebx
call fcn.0040be80
mov edx, dword [esp + 0x3c]
add ebx, esi
mov edi, dword [esp + 0x30]
add esp, 0xc
mov ecx, dword [esp + 0x48]
sub edx, esi
mov esi, dword [esp + 0x20]
cmp ecx, 0x10
jb 0x40900d
lea eax, [edx + ebx]
mov dword [esp + 0x10], eax
movups xmm0, xmmword [edi]
movups xmmword [ebx], xmm0
cmp edx, 0x10
jle 0x4090ee
mov edx, dword [esp + 0x10]
lea eax, [ebx + 0x10]
lea ecx, [edi + 0x10]
movups xmm0, xmmword [ecx]
lea ecx, [ecx + 0x20]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx - 0x10]
movups xmmword [eax + 0x10], xmm0
add eax, 0x20
cmp eax, edx
jb 0x408ff0
jmp 0x4090ee
cmp ecx, 8
jae 0x40903e
movzx eax, byte [edi]
mov byte [ebx], al
movzx eax, byte [edi + 1]
mov byte [ebx + 1], al
movzx eax, byte [edi + 2]
mov byte [ebx + 2], al
movzx eax, byte [edi + 3]
add edi, dword [ecx*4 + 0x4226f0]
mov byte [ebx + 3], al
mov eax, dword [edi]
sub edi, dword [ecx*4 + str._b_b_b_a_b_t_n_v]
jmp 0x409045
mov eax, dword [edi]
mov dword [ebx], eax
mov eax, dword [edi + 4]
mov dword [ebx + 4], eax
cmp edx, 8
jbe 0x4090ee
lea ecx, [edx - 8]
add edi, 8
lea eax, [ebx + 8]
mov dword [esp + 0x10], ecx
lea edx, [eax + ecx]
mov ecx, eax
sub ecx, edi
cmp ecx, 0x10
jge 0x409085
sub edi, eax
nop dword [eax]
mov ecx, dword [eax + edi]
mov dword [eax], ecx
mov ecx, dword [eax + edi + 4]
mov dword [eax + 4], ecx
add eax, 8
cmp eax, edx
jb 0x409070
jmp 0x4090ee
cmp dword [esp + 0x10], 0x10
movups xmm0, xmmword [edi]
movups xmmword [eax], xmm0
jle 0x4090ee
add eax, 0x10
lea ecx, [edi + 0x10]
nop dword [eax + eax]
movups xmm0, xmmword [ecx]
lea ecx, [ecx + 0x20]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ecx - 0x10]
movups xmmword [eax + 0x10], xmm0
add eax, 0x20
cmp eax, edx
jb 0x4090a0
jmp 0x4090ee
push dword [esp + 0x4c]
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x1c]
push dword [esp + 0x54]
mov edx, dword [esp + 0x34]
push dword [esp + 0x2c]
movups xmm0, xmmword [ecx]
mov ecx, ebp
push dword [esp + 0x4c]
push eax
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
call fcn.00407950
add esp, 0x24
mov esi, eax
cmp esi, 0xffffff88
ja 0x408e61
mov ebx, dword [esp + 0x28]
add ebp, esi
inc ebx
mov dword [esp + 0x28], ebx
cmp ebx, dword [esp + 0x12c]
jl 0x408e80
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0xb4]
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x40]
mov dword [edx + 0x682c], eax
mov eax, dword [esp + 0xb8]
mov dword [edx + 0x6830], eax
mov eax, dword [esp + 0xbc]
mov dword [edx + 0x6834], eax
mov eax, dword [esp + 0x18]
sub edi, eax
sub ebx, ebp
cmp edi, ebx
jbe 0x409155
mov eax, 0xffffffba
jmp 0x40916c
test ebp, ebp
je 0x409166
push edi
push eax
push ebp
call fcn.0040b8b0
add esp, 0xc
add ebp, edi
sub ebp, dword [esp + 0x6c]
mov eax, ebp
mov ecx, dword [esp + 0x114]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0040a26b
add esp, 0x10c
ret